仅在缓冲完整视频后才开始播放 HTML5 视频

Posted

技术标签:

【中文标题】仅在缓冲完整视频后才开始播放 HTML5 视频【英文标题】:Start playing HTML5 Video only after the complete video is buffered 【发布时间】:2016-01-28 20:40:39 【问题描述】:

只有在缓冲整个视频 (100%) 后,我才能开始播放我的 html5 MP4 视频。当它处于缓冲过程中时,我应该显示加载屏幕。请帮忙。此代码应该在 Firefox 和 IE11 中都可以使用。

超链接标题示例: - 播放视频 1:最喜欢的食物 - 播放视频 1:最喜欢的蔬菜 - 播放视频 2:最喜欢的动物

这是我点击超链接和视频标签时的代码。我从数据库中动态加载视频。 'pos' 属性以秒为单位表示玩家必须寻找播放的时间。

<video id="VideoContainer" controls="controls" style="width:500px;height:320px" preload="auto">
<source id="VideoData" src=@Model.IntroVideoPath type="video/mp4" />
Your browser does not support the video tag.

<a onclick="navVideo('@items.FileName','@items.StartSec');">@items.DisplayText</a>

 function navVideo(fileName, pos) 
    //Get Player and the source
    var player = document.getElementById('VideoContainer');
    var mp4Vid = document.getElementById('VideoData');
    var mp4CurVid = $(mp4Vid).attr('src');

    //Reload the player only if the file name changes
    if (mp4CurVid != fileName)             
        $(mp4Vid).attr('src', fileName);
        player.load();

        player.play();
        if (pos != 0) 
            setTimeout(function () 
                player.currentTime = pos;
                player.play();
            , 1000);
        
    
    else 
        player.pause();
        player.currentTime = pos;
        player.play();
    

【问题讨论】:

HTML5 video buffering before the playback的可能重复 【参考方案1】:

问题在于该 MP4 文件的编码技术。我使用不同的设置(Mp4 的随机设置选项)进行编码,最后让它在没有缓冲区的情况下工作。

【讨论】:

【参考方案2】:

您可以使用这个http://videojs.com/ 来让它工作。

【讨论】:

以上是关于仅在缓冲完整视频后才开始播放 HTML5 视频的主要内容,如果未能解决你的问题,请参考以下文章

Youtube 的 HTML5 视频播放器如何控制缓冲?

仅在视频播放时进行视频控制 (html5)

javascript中的HTML5视频完整预加载

停止缓冲 HTML5 视频,但保留缓冲数据。然后继续

有没有办法知道 HTML5 视频初始缓冲区百分比的 Javascript 百分比?

HTML5 视频缓冲,尽管等待 `canplaythrough` 事件到 `play()`