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

时间:2014-02-20 15:48:40

标签: javascript html5 google-chrome video

可以使用一些帮助。我们的网站上有一些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>

1 个答案:

答案 0 :(得分:0)

在您的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/, '') !== '') {

让我知道它是否适合你。