用最简单的前端技术制作一个简洁的音乐播放器


当前第2页 返回上一页

js部分
代码一(播放控制):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

//播放控制

var myAudio = $("audio")[0];

// 播放/暂停控制

$(".btn1").click(function(){

if (myAudio.paused) {

play()

} else {

pause()

}

});

// 频道切换

$(".btn2").click(function(){

getChannel();

});

// 播放下一曲音乐

$(".btn3").click(function(){

getmusic();

});

function play(){

myAudio.play();

$('.btn1').removeClass('m-play').addClass('m-pause');

}

function pause(){

myAudio.pause();

$('.btn1').removeClass('m-pause').addClass('m-play');

}

代码二(ajax获取豆瓣fm音乐):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

//获取随机频道信息

function getChannel(){

$.ajax({

url: 'http://api.jirengu.com/fm/getChannels.php',

dataType: 'json',

Method: 'get',

success: function(response){

var channels = response.channels;

var num = Math.floor(Math.random()*channels.length);

var channelname = channels[num].name;//获取随机频道的名称

var channelId = channels[num].channel_id;//获取随机频道ID

$('.record').text(channelname);

$('.record').attr('title',channelname);

$('.record').attr('data-id',channelId);//将频道ID计入data-id中

getmusic();

}

})

}

// 通过ajax获取歌曲

function getmusic(){

$.ajax({

url: 'http://api.jirengu.com/fm/getSong.php',

dataType: 'json',

Method: 'get',

data:{

'channel': $('.record').attr('data-id')

},

success: function (ret) {

var resource = ret.song[0],

url = resource.url,

bgPic = resource.picture,

sid = resource.sid,//获取歌词的参数

ssid = resource.ssid,//获取歌词的参数

title = resource.title,

author = resource.artist;

$('audio').attr('src',url);

$('.musicname').text(title);

$('.musicname').attr('title',title)

$('.musicer').text(author);

$('.musicer').attr('title',author)

$(".background").css({

'background':'url('+bgPic+')',

'background-repeat': 'no-repeat',

'background-position': 'center',

'background-size': 'cover',

});

play();//播放

}

})

};

注意:豆瓣会限制我们的访问,所以在<head>标签下一定要添加<meta name="referrer" content="no-referrer">

代码三(进度条控制):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

setInterval(present,500)    //每0.5秒计算进度条长度

$(".basebar").mousedown(function(ev){  //拖拽进度条控制进度

var posX = ev.clientX;

var targetLeft = $(this).offset().left;

var percentage = (posX - targetLeft)/400100;

myAudio.currentTime = myAudio.duration * percentage/100;

});

function present(){

var length = myAudio.currentTime/myAudio.duration100;

$('.progressbar').width(length+'%');//设置进度条长度

//自动下一曲

if(myAudio.currentTime == myAudio.duration){

getmusic()

}

}

html5中audio标签本身提供进度条功能,以及音量控制功能的,这里我为了界面的好看自己设置了进度条,音量控制还没有加,大家可以自行添加。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

怎样让浏览器变成编辑器

如何使用python来判断图片相似度

用来下载图片的javascript脚本

以上就是用最简单的前端技术制作一个简洁的音乐播放器的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

svg制作简单图形的实例介绍

dw文本框制作步骤详解

js之原生数组splice方法实例

怎么能在页面上实现一个圆形可点击区域?

分享dom中的表单操作,节点操作

用<h1>和段落<p> 写一个三毛语录

在线演示一个全屏切换效果实例

制作动态视觉差背景(h5)的方法

每天一个js 小demo之滑屏幻灯片。主要知识点:event

before :after怎么输出一个小三角形

更多相关阅读请进入《最简单》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...