微信H5記錄視頻播放進度

需求:javascript

微信端看視頻,關閉微信的窗口時須要記錄當前播放時間,下次在進入的時候從上次保存的進度開始播放java

面臨的問題:緩存

  1. 監控微信離開頁面
  2. 從新進入時候從上傳保存的地方播放

設備環境:Iphone 6s 微信微信

處理:ide

  1. 監控離開

開始的時候使用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;
        }
    }
相關文章
相關標籤/搜索