需求:javascript
微信端看視頻,關閉微信的窗口時須要記錄當前播放時間,下次在進入的時候從上次保存的進度開始播放java
面臨的問題:緩存
設備環境:Iphone 6s 微信微信
處理:ide
開始的時候使用onbeforeunload事件,發現微信端離開時並未調用記錄進度的腳本
改用 pagehide事件,貌似也沒調用記錄進度的腳本
所以改用一個折中的方式
使用video.ontimeupdate事件作監控,實時記錄進度測試
2.從新進入的時候須要從上次播放的地方開始播放
開始在視頻初始化時設置currentTime進度,並不生效
通過多方折騰,在video.onloadeddata事件中設置,解決了問題code
代碼清單:
實時記錄進度視頻
audio.ontimeupdate = function () { if(window.localStorage) { var courseId = $('#courseId').val(); if(!playBackCache) { playBackCache = {}; } playBackCache[courseId] = audio.currentTime; localStorage.setItem('playBackCache' , JSON.stringify(playBackCache)); } };
在上次記錄的進度開始播放事件
//_currentTime 是從上面的緩存中獲取的時間進度 audio.onloadeddata = function() { if(_currentTime > 0) { audio.currentTime = _currentTime; } }
其實我以爲個人方法並不完善,發佈出來也想知道你們對於這樣的需求是怎麼處理的,能夠討論一下ip
PS:
通過測試,在onloadeddata並不會設置audio.currentTime,再次進行改造
//_currentTime 是從上面的緩存中獲取的時間進度 audio.ontimeupdate= function() { if(_currentTime > 0) { audio.currentTime = _currentTime; } }