Mediaelementjs 视频在 Chrome 中恢复播放问题



可以使用一些帮助。我们的网站上有一些Brightcove托管的MP4视频。它们使用Mediaelementjs的HTML5视频播放器显示,并带有Flash回退。

问题是:当用户使用标准 Mediaelementjs 控件暂停并恢复视频时,视频并不总是恢复。有时,它只是回到起点。这主要发生在视频尚未完全加载时,但并非总是如此。哦,似乎只有Chrome受到影响。

现在,工作的最后一个扳手如下:检查Chrome开发工具中的视频通常会给我们带来"检查元素已崩溃"的消息,从而破坏整个选项卡。

知道是什么原因造成的吗?最重要的是,我对如何调试问题的想法感到困惑。我已经尝试删除页面上任何冲突的脚本,使用 preload 属性,但都无济于事。

<div class="mejs-mediaelement"><video id="foo" style="width: 100%; height: 100%;" width="622" height="321" poster="foo">
<source id="foo" src="foo" type="video/mp4">
<object width="600" style="width: 100%; height: 100%;" height="338" type="application/x-shockwave-flash" src="/js/mediaelement/flashmediaelement.swf" data="/js/mediaelement/flashmediaelement.swf">
    <param name="movie" value="/js/mediaelement/flashmediaelement.swf">
    <param name="flashvars" value="foo">
</object>

在mediaelement JS lib文件中,搜索:

htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '')

改变:

if (htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== '' 
    // special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')
    || htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no/, '') !== '') {

自:

if (htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no|maybe/, '') !== '' 
    // special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')
    || htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no|maybe/, '') !== '') {

让我知道它是否适合您。

最新更新