changing source on html5 video tag

前端 未结 16 2106
既然无缘
既然无缘 2020-11-22 08:31

i\'m trying to build a video player, that works everywhere. so far i\'d be going with:

16条回答
  •  猫巷女王i
    2020-11-22 09:13

    I come with this to change video source dynamically. "canplay" event sometime doesn't fire in Firefox so i have added "loadedmetadata". Also i pause previous video if there is one...

    var loadVideo = function(movieUrl) {
        console.log('loadVideo()');
        $videoLoading.show();
        var isReady = function (event) {
                console.log('video.isReady(event)', event.type);
                video.removeEventListener('canplay', isReady);
                video.removeEventListener('loadedmetadata', isReady);
                $videoLoading.hide();
                video.currentTime = 0;
                video.play();
            },
            whenPaused = function() {
                console.log('video.whenPaused()');
                video.removeEventListener('pause', whenPaused);
                video.addEventListener('canplay', isReady, false);
                video.addEventListener('loadedmetadata', isReady, false); // Sometimes Firefox don't trigger "canplay" event...
                video.src = movieUrl; // Change actual source
            };
    
        if (video.src && !video.paused) {
            video.addEventListener('pause', whenPaused, false);
            video.pause();
        }
        else whenPaused();
    };
    

提交回复
热议问题