jplayer实现单曲循环

播放器里有3种播放形式,单曲循环,随机播放,按顺序播放。随机播放和顺序播放已经实现,接下来就是单曲循环。我来说说我的思路。

单用户点击单曲循环列表的时候,获取当前正在播放的音乐数据,并记录该音乐数据。启用计时器比较当前音乐播放时间进度和音乐总的时间,如果播放到总时间的最后12秒,就继续播放刚刚标记的音乐数据。如果用户点击上一条或下一条按钮,就更换记录。

具体代码:

var play_repeat=null;//需要单曲循环的音乐
点击循环播放按钮
 $(document).on('click', '.jp-repeat', function(e){
	 //点击播放按钮,先把随机播放的按钮给变成灰色 
	  $('.jp-shuffle-off').hide();
	  $('.jp-shuffle').show();
	  getNowPlayMusic();
  })
//获取播放列表里正在播放的音乐数据,也就是当前需要循环的音乐数据
function getNowPlayMusic(){
	  var audio=$('#jplayer_N').find('audio')[0];
	  	var src=$(audio).attr('src'); 
	  	if(src==undefined)return;
	  	for(var i=0;i<myPlaylist.playlist.length;i++){
	 		 var mm=myPlaylist.playlist[i];
	 		 if(src.indexOf(mm.mp3)>-1){
	 			play_repeat=mm;
	 		  }
	  	} 
  }
//计时器循环音乐播放进度
 setInterval(function(){
//myPlaylist.playlist是音乐播放列表
	if(myPlaylist.playlist!=undefined) {
				 //$('.jp-repeat').is(':hidden')表示用户开启的单曲循环按钮
			if($('.jp-repeat').is(':hidden')&&play_repeat!=null){
					 //audio现在正在播放的音乐
					var audio=$('#jplayer_N').find('audio')[0];
			    	var src=$(audio).attr('src'); 
			    	if(src!=undefined&&play_repeat!=null){ 
//如果当前播放的音乐和以前存储的音乐数据不一样,就替换掉,出现这种情况,是因为用户先点击了单曲循环按钮,
然后又点击上一条,下一条播放按钮,这时候用户的单曲循环数据就得跟着变化
			    		if(src.indexOf(play_repeat.mp3)==-1){
			    			for(var i=0;i<myPlaylist.playlist.length;i++){
			    		 		 var mm=myPlaylist.playlist[i];
			    		 		 if(src.indexOf(mm.mp3)>-1){
			    		 			play_repeat=mm;break;
			    		 		  }
			    		  	} 
			    		}
                                        //监听播放时间,如果音乐快播完了,就设置成当前需要单曲循环的音乐数据
			    		if(audio.currentTime+6>audio.duration){
			    			$('#jplayer_N').jPlayer("setMedia",play_repeat );
			    			myPlaylist.play();
			    		}
			    	}
				}
				 
				 
			}
		 }, 3000) ;

在这里插入图片描述
如有有疑问可以联系扣1913284695探讨

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值