2

在 Internet Explorer 中遇到 jwplayer 问题

JW播放器版本:6.1.2972

<div id="mediaplayer_1294">JW Player goes here</div>

<script type="text/javascript">
jwplayer("mediaplayer_1294").setup({
flashplayer: "jwplayer/jwplayer.flash.swf",
file: "media.php?file=encoded_2012-10-19_17.13.24_1360841686.mp4&folder=shareddocs&user=9759",
image: "media.php?file=encoded_2012-10-19_17.13.24_1360841686.jpg&folder=thumb&user=9759",
controlbar: "bottom",
width: "380",
height: "200",
primary: "html5",
type: "mp4",
controls: true,
allowscriptaccess: 'always',
bufferlength: 5
});
</script>

ie7:它加载和播放都很好,但我在控制台上得到了这个

LOG: Could not add internal listener

即8

Error loading player: Could not load player configuration

即9

Error loading media: File could not be played 

我在控制台上得到了这个:

LOG: Error playing media: [object MediaError] 
LOG: CAPTIONS([object Object]) 
LOG: CAPTIONS([object Object]) 

在所有其他浏览器中都能正常工作

更新:

由于我在一页中有很多 jwplayers(最多 10 个),所以我实现了单击以加载播放器。出于某种原因,这已经解决了 ie 8 问题

<div class="player-<?php echo $row['p_id']; ?>">
<div id="mediaplayer_<?php echo $row['p_id']; ?>"></div>
<a href="#player-<?php echo $row['p_id']; ?>" id="btn_<?php echo $row['p_id']; ?>"><img src="<?php echo $thumb_path; ?>"/></a>
</div>

<script type="text/javascript">
$(document).ready(function() {
$("#btn_<?php echo $row['p_id']; ?>").click(function() {
$(this).hide();
jwplayer('mediaplayer_<?php echo $row['p_id']; ?>').setup({
flashplayer: "jwplayer/jwplayer.flash.swf",
file: "<?php echo $flv_path; ?>",
image: "<?php echo $thumb_path; ?>",
controlbar: "bottom",
width: "380",
height: "200",
autostart: "true",
primary: "html5",
type: "mp4",
controls: true,
allowscriptaccess: 'always'
});
jwplayer('mediaplayer_<?php echo $row['p_id']; ?>').load();
setTimeout(function(){$(".player-<?php echo $row['p_id']; ?>").focus();return false;},100);
});
});
</script>
4

3 回答 3

2

在调用 .MP4 文件时检查响应标头。

确保您Content-Length:在回复中发送。content-length在将响应标头添加到配置之前,IE9 无法加载视频。

Transfer-Encoding:chunked可能把事情搞砸,如果你正在压缩 MP4 文件,这很常见。

于 2013-05-04T11:46:24.693 回答
0

我今天偶然发现了同样的情况。我试图一遍又一遍地编译视频。但仍然只能在 Chrome 中工作,而不能在 Firefox 的 Internet Explorer 中工作。

比我发现将 IIS 中 mp4 的 MIME 类型从 video/mpeg 更改为 video/mp4

效果很好:)

于 2014-05-15T08:29:09.350 回答
0

如果您使用 IE,您可以使用如下所示的播放器状态嗅探器。当播放器准备好有效的事件侦听器订阅时,状态从未定义变为字符串值('IDLE')。

然后,您可以在检测到此状态更改时附加事件侦听器。

我想这是一个必须在 jwplayer 代码中的解决方案。:) 我使用的是 5.9.2156 版本。

//Use as an exambple, it may be buggy.
var
    MyObj = {
        pool: 50,
        interval: null,
        videoElement: jwplayer( 'videoAd' ),
        attachEvents: function () {
            this.interval = window.setInterval ( _.bind( function () {
            if ( this.videoElement ) {
                var
                    state = this.videoElement.getState();

                if ( typeof state !== 'undefined' ) {
                    window.clearInterval ( this.interval );
                    this.videoElement
                    .onError( function () { console.log( 'jwplayer: onError' ) } )
                    .onReady( function () { console.log( 'jwplayer: onReady' ) } )
                    .onPlay( function () { console.log( 'jwplayer: onPlay' ) } )
                    .onComplete( function () { console.log( 'jwplayer: onComplete' ) } );
                }
            }
        }, this ), this.pool );
    }
};

MyObj.attachEvents();
于 2014-01-23T14:48:42.250 回答