簡體   English   中英

可見性恢復為“可見”:僅在之前不暫停的情況下自動播放視頻

[英]visibility back to 'visible' : video auto-play only if was not on pause before

當可見性更改為隱藏時,我可以暫停視頻,而可見性恢復到可見時,可以播放視頻。 像那樣 :

    var userManuallyPause = false;

    var video = document.getElementById('video');
    var documentTitle = document.title;

    var updateTitleForVideo = function(state){
        if (state === '') {
            document.title = documentTitle;
            return;
        };

        document.title = documentTitle + ' [' + state + ']';
    };

    video.onpause = function(){
        userManuallyPause = true;
        updateTitleForVideo('Paused');
    };

    video.onplay = function(){
        updateTitleForVideo('');
    };

    document.addEventListener('visibilitychange', function(){
        var state = document.visibilityState;

        if (!video.paused) {
            if (state === 'hidden') {
                video.pause();
                userManuallyPause = false;
                updateTitleForVideo('Paused');
            }
        }
        else if (state === 'visible' && !userManuallyPause) { video.play(); }
    });

但是,如果視頻在可見性變為隱藏狀態之前已經暫停,那么我不希望在返回可見狀態時播放視頻。

那可能嗎 ? 我不確定。

您可以將其存儲在變量中,例如var userManuallyPause = false ,如果用戶自己將其暫停,則可以將該變量設置為true。 用戶取消暫停時,可以將其設置回false。

然后在上面的代碼中,添加對

if (!userManuallyPause) { ... }

它應該按預期運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM