检测JWPlayer无法播放任何给定的来源并显示自定义错误消息

时间:2015-08-01 19:18:03

标签: jwplayer

我正在使用JWPlayer并将.smil源和.m3u8源传递给构造函数:

var player = jwplayer("jwplayer-container");

player.setup({

    ...

    sources: [
        {
            file: "some-rtmp-manifiest.smil"
        },
        {
            file: "some-hls-playlist.m3u8"
        }
    ],

    ...

});

不幸的是,如果我在不支持HLS或安装了Flash的浏览器上查看我的播放器,我会在播放器中看到一条丑陋且令人困惑的错误消息

  

加载播放器时出错:找不到可播放的来源

如何检测此特定状态以显示我自己的错误消息(建议用户安装Flash)?

3 个答案:

答案 0 :(得分:3)

.onSetupError(JW Player 6)或.on(' setupError')(JW Player 7)应该抓住这个。 http://support.jwplayer.com/customer/portal/articles/1413089-javascript-api-reference

此外,JW Player 6还有一个"后备:false"设置播放器时可以传入的选项。添加此功能应该可以防止JW Player显示消息,让您将消息放在那里。我不确定JW7是否保留了这个。

答案 1 :(得分:1)

以下是一个例子:

http://support.jwplayer.com/customer/portal/articles/1442607-example-a-custom-error-message

var playerInstance = jwplayer("container");
​playerInstance.onError(function(){
​playerInstance.load({file:"http://www.com/errorfile.mp4",image:"http://www.com/errorfile.jpg"});
playerInstance.play();
});

或者,对于流媒体:

playerInstance.on('buffer', function(){
theTimeout = setTimeout(function(){
playerInstance.load({file:"http://www.com/errorfile.mp4",image:"http://www.com/errorfile.jpg"});
playerInstance.play();
},5000);
});

或者,如果不是媒体错误,而是设置错误,请使用onSetupError - http://support.jwplayer.com/customer/portal/articles/1413089-javascript-api-reference

答案 2 :(得分:1)

另外,要在setupError上播放自定义消息,请创建一个使用自定义视频文件设置播放器的功能(如果出现setupError错误的原因是错误的视频文件)。

    player.on('setupError', function () {
        player.setup({
            file: '//content.jwplatform.com/videos/7RtXk3vl-52qL9xLP.mp4',
            width: width,
            height: height,
            autostart: true,
        });
    })