如何使用JW Player在所有浏览器/设备中播放视频?

时间:2013-01-23 22:34:55

标签: javascript twitter-bootstrap video jwplayer

我在我的proyect中使用JW Player,其中包含许多格式的视频:MP4,FLV,OGV,WMV

我阅读了每个浏览器支持的不同格式的文档。所以,现在我使用的是MP4(Chrome,Safari),FLV(IE,7,8,9)和WEBM(Mozilla)。

jwplayer('container').setup({
                height: 309,
                width: 549,
                levels: [
                    { file: "video.mp4" },
                    { file: "video.webm" },
                    { file: "video.flv" }
                ], 
                'modes': [
                    {type: 'html5'},
                    {type: 'flash', src: "jwplayer.flash.swf"},
                    {type: 'download'}
                ]
});

我的问题是,如果此代码正在执行:检查浏览器是否支持HTML5或FLASH - >依赖浏览器自动重现MP4(Chrome - Safari)或FLV(IE)或WEBM(Mozilla)。

因为,特别是在mozilla中,我第一次收到消息:“ERROR LOADING MEDIA:文件无法播放” 然后,当我点击2或1次时,播放视频。

对于文件的顺序可能会发生这种情况吗?


更新

我更改了我的mime.conf设置和.htaccess,添加了以下行:

注意:我在我的Codeigniter项目中使用Drupal的.htaccess

htaccess的:

#
# Apache/PHP/Drupal settings:
#

#For disable gzip
SetEnvIfNoCase Request_URI \.(og[gv]|mp4|m4v|webm)$ no-gzip dont-vary

#For add mime types
AddType video/ogg  .ogv
AddType video/mp4  .mp4
AddType video/webm .webm
[...]

mime.conf

#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
#AddType application/x-gzip .gz .tgz
AddType application/x-bzip2 .bz2
AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

我禁用gzip压缩,但问题仍然存在..只有我的应用程序进入facebook的iframe失败了视频webm。 MP4工作正常。


更新2

这里的问题是Twitter Bootstrap。我用它来表演模态。在使用视频显示模态之前,我将cookie保存在浏览器中。

当我将视频放入模态时,视频无法播放。当我点击2次视频时,此视频播放。仅限Mozilla Firefox; Chrome,IE 7-8-9工作正常。

当我将视频输出模态时。这通常在所有浏览器中播放。

抱歉我的英文。

1 个答案:

答案 0 :(得分:3)

从查看链接开始,我已经能够确定您现在使用的是JW6,而不是JW5,您应该使用不同的代码。

此代码:

jwplayer('container').setup({
                height: 309,
                width: 549,
                levels: [
                    { file: "video.mp4" },
                    { file: "video.webm" },
                    { file: "video.flv" }
                ], 
                'modes': [
                    {type: 'html5'},
                    {type: 'flash', src: "jwplayer.flash.swf"},
                    {type: 'download'}
                ]
});

应该是这样的,例如:

jwplayer('container').setup({
                height: 309,
                width: 549,
                playlist: [{
                sources: [
                    { file: "video.mp4" },
                    { file: "video.webm" },
                    { file: "video.flv" }
                ]
                }]
});

这是因为在JW6模式被删除后,HTML5已经是主要模式,“级别”被“来源”取代。

以下是迁移文档 - http://www.longtailvideo.com/support/jw-player/28834/migrating-from-jw5-to-jw6

jw6中使用的多个文件的示例在这里 - http://www.longtailvideo.com/support/jw-player/29251/mp4-and-webm-formats