我正在使用JWPlayer并将.smil
源和.m3u8
源传递给构造函数:
var player = jwplayer("jwplayer-container");
player.setup({
...
sources: [
{
file: "some-rtmp-manifiest.smil"
},
{
file: "some-hls-playlist.m3u8"
}
],
...
});
不幸的是,如果我在不支持HLS或安装了Flash的浏览器上查看我的播放器,我会在播放器中看到一条丑陋且令人困惑的错误消息
加载播放器时出错:找不到可播放的来源
如何检测此特定状态以显示我自己的错误消息(建议用户安装Flash)?
答案 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,
});
})