如果在 mp4 之后列出,带有 Chrome 的 MediaElement.js 无法下载 webm 文件

发布于 2024-10-20 18:17:24 字数 1394 浏览 7 评论 0原文

当我使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

三生路 2024-10-27 18:17:24

我猜测 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.

萌逼全场 2024-10-27 18:17:24

我想我也有同样的问题。我用来初始化播放器的第一个 jQuery 代码是这样的:

var player = new MediaElementPlayer('#video-player',{});
player.play();

然后我将其更改为这样并且它起作用了:

$('#video-player').mediaelementplayer({
    success: function(player, node) {
        $('#' + node.id + '-mode').html('mode: ' + player.pluginType);
    }
});

hth

I had this same problem, I think. The first jQuery code I used to init the player was this:

var player = new MediaElementPlayer('#video-player',{});
player.play();

Then I changed it to this and it worked:

$('#video-player').mediaelementplayer({
    success: function(player, node) {
        $('#' + node.id + '-mode').html('mode: ' + player.pluginType);
    }
});

hth

装迷糊 2024-10-27 18:17:24

我将视频标签上的预加载更改为“自动”并且它有效。我运行的是 chrome 27

I changed preload on the video tag to "auto" and it works. I'm running chrome 27

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文