前段时间做过一个项目,每个页面设置了同一个背景音乐,但客户要求音乐从一个页面进入另一个页面后,要接着上一页面播放时间播放,所以进入新页面后设置currentTime为上个页面播放时间
但ios系统直接设置无效,在判断音乐可播放时(canplay)再设置currentTime才可以,但在安卓设备上也这样判断设置则也无效,所以要根据不同系统设置,以下是针对ios、安卓系统设置的代码
//判断是否安卓设备 function isAndroid(){ var u = navigator.userAgent; if(u.indexOf('Android') > -1 || u.indexOf('Linux') > -1){ return true; } } $(function(){ var $myVideo = $("#chatAudio")[0]; if(isAndroid()){ if(sessionStorage.currentTime > 0.1){ //设置播放时间 $myVideo.currentTime = sessionStorage.currentTime; } }else{ if(sessionStorage.currentTime > 0.1){ //已准备好开始播放 $myVideo.addEventListener("canplay",function() { //设置播放时间 $myVideo.currentTime = sessionStorage.currentTime; }); } } //保存已播放的时间 $myVideo.addEventListener("timeupdate", function(){ sessionStorage.currentTime = $myVideo.currentTime; }, false); })