打算用audio自己做個(gè)播放器,需要用audio標(biāo)簽的currentTime屬性,來控制播放進(jìn)度。但是這個(gè)屬性在FireFox及ie11下都有效,但就是在chrome下面,設(shè)置了無效,不知道各位大神知道原因嗎?代碼如下:.directive('mediaPlayer',function(mediaPlayerConfig,$interval,$timeout){return{restrict:'EA',templateUrl:'template/player.html',scope:{playList:'='},controller:function($scope){varplayer=this;varconf=mediaPlayerConfig;varplayList=$scope.playList||[];var$audio,isPlaying=false;vartimer=null;varindex=0;varaudioLike={currentTime:0,duration:0,volume:0};player.initialize=function(){$scope.audioLike=audioLike;audioLike.volume=$audio.volume;player.play(index)};player.setAudio=function(element){$audio=element[0];player._bindEvents(element);};player.play=function(file){varidx;if(angular.isNumber(file)){idx=file;file=playList[idx];}if(file){$audio.src=file[conf.fileUrlProp];$scope.currentFile=file;}$interval.cancel(timer);timer=$interval(function(){audioLike.currentTime=$audio.currentTime.toFixed(0);},1000);$audio.play();isPlaying=true;};player.pause=function(){$audio.pause();isPlaying=false;$interval.cancel(timer);};//播放上一首,如果已經(jīng)是第一首,則跳到最后一首player.prev=function(){index=index===0?playList.length-1:index-1;player.play(index);};//播放下一首,如果已經(jīng)是最后一首,則跳到第一首player.next=function(){index=index===(playList.length-1)?0:index+1;player.play(index);};player.skipTo=function(sec){$audio.currentTime=sec;};player.togglePlay=function(){varmethod=isPlaying?'pause':'play';player[method]();};player.isPlay=function(){returnisPlaying;};player.random=function(){varmin=0;varmax=playList.length-1;varrange=max-min;varrand=Math.random();rand=min+Math.round(rand*range);player.play(rand);};player._bindEvents=function(element){element.on('canplay',function(e){$scope.$apply(function(){audioLike.duration=$audio.duration.toFixed(0);});}).on('ended',function(){//如果允許循環(huán)if(conf.loop){}if(conf.random){player.random();return;}$scope.$apply(function(){player.next();});}).on('progress',function(e){console.log(e);});};player.volume=function(volume){if(angular.isNumber(volume)){$audio.volume=volume;}else{return$audio.volume;}};},link:function(scope,element,attr,mediaPlayerCtrl){mediaPlayerCtrl.initialize();scope.skipTo=function(){mediaPlayerCtrl.skipTo(250);};}}})
HTML5 audio ,在chrome中設(shè)置currentTime無效
蝴蝶不菲
2019-04-23 15:12:48