如果在 mp4 之后列出,带有 Chrome 的 MediaElement.js 无法下载 webm 文件
当我使用 MediaElement.js 并首先列出 mp4 文件,然后列出 webm 时,它不会在 Chrome (11.0.686.3 dev) 中播放任何内容。
它在 Safari/FF/Opera 中运行良好。
如果我首先列出 mp4,然后列出 webm,但不调用 mediaelementplayer,使用本机 HTML5 视频,它在 Chrome 中工作正常。
如果我调用 mediaelementplayer 但首先列出 webm 文件,它在 Chrome(和其他)中也可以正常工作。 我已经尝试了所有变体,但无法弄清楚这种行为。 我通过更改 Chrome 服务器端的源代码顺序来解决这个问题,但我不喜欢该解决方案。
如果有人有任何想法,我将不胜感激。
我的 HTML
<video width="475" height="275" controls="controls">
<source src="/media/BetterDays.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
<source src="/media/BetterDays.webm" type='video/webm; codecs="vp8, vorbis"'/>
<source src="/media/BetterDays.theora.ogv" type='video/ogg; codecs="theora, vorbis"' />
<!-- Flash fallback -->
<object width="475" height="275" type="application/x-shockwave-flash" data="/javascripts/flashmediaelement.swf">
<param name="movie" value="/javascripts/flashmediaelement.swf" />
<param name="flashvars" value="controls=true&poster=/images/better_poster_200.jpg&file=/media/BetterDays.mp4" />
</object>
<!-- Image as a last resort -->
<img src="/images/better_poster_200.jpg" width="475" height="275" title="No video playback capabilities" />
</video>
我的 jQuery 调用:
$('视频').mediaelementplayer();
When I use MediaElement.js and list first the mp4 file and then webm, then it doesn't play anything in Chrome (11.0.686.3 dev).
It works fine in Safari/FF/Opera.
It works fine in Chrome if I list mp4 first and webm second but don't call mediaelementplayer, using native HTML5 video.
It also works fine in Chrome (and others) if I call mediaelementplayer but list webm file first.
I've tried all variations and can't figure out this behavior.
I got around it on by changing source order on server side for Chrome, but i'm not a fan of that solution.
If anyone has any ideas I'd be grateful.
My HTML
<video width="475" height="275" controls="controls">
<source src="/media/BetterDays.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
<source src="/media/BetterDays.webm" type='video/webm; codecs="vp8, vorbis"'/>
<source src="/media/BetterDays.theora.ogv" type='video/ogg; codecs="theora, vorbis"' />
<!-- Flash fallback -->
<object width="475" height="275" type="application/x-shockwave-flash" data="/javascripts/flashmediaelement.swf">
<param name="movie" value="/javascripts/flashmediaelement.swf" />
<param name="flashvars" value="controls=true&poster=/images/better_poster_200.jpg&file=/media/BetterDays.mp4" />
</object>
<!-- Image as a last resort -->
<img src="/images/better_poster_200.jpg" width="475" height="275" title="No video playback capabilities" />
</video>
My jQuery call:
$('video').mediaelementplayer();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我猜测 Chrome 11 是第一个删除 H.264 的版本,因此它如何报告可以播放和不能播放的内容可能会有点棘手。我将切换到 Chrome 的开发频道,看看是否可以看到发生了什么。
最好在 https://github.com/johndyer/mediaelement 提交错误,因为这并不是真正的实施问题。
I'm guessing Chrome 11 is the first version to have H.264 removed so things might be a little tricky with how it reports what it can and can't play. I'll switch over to the dev channel of Chrome and see if I can see what's going on.
It might be better to file a bug over at https://github.com/johndyer/mediaelement since this isn't really an implementation issue.
我想我也有同样的问题。我用来初始化播放器的第一个 jQuery 代码是这样的:
然后我将其更改为这样并且它起作用了:
hth
I had this same problem, I think. The first jQuery code I used to init the player was this:
Then I changed it to this and it worked:
hth
我将视频标签上的预加载更改为“自动”并且它有效。我运行的是 chrome 27
I changed preload on the video tag to "auto" and it works. I'm running chrome 27