2015-08-01 1 views
2

Я использую JWPlayer и пропускание .smil источника и .m3u8 источника в конструктор:Detect JWPlayer не может воспроизводить любые данные источники и персонализированное сообщение об ошибке

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

player.setup({ 

    ... 

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

    ... 

}); 

К сожалению, если я смотреть плеер на браузер, который не поддерживает HLS или установлена ​​вспышка, я вижу уродливое и запутанное сообщение об ошибке в проигрывателе говоря

ошибки загрузки проигрывателя: нет воспроизводимые источников не найден

Как я могу определить это конкретное состояние, чтобы показать свое собственное сообщение об ошибке (предполагая, что пользователь устанавливает Flash)?

+0

@ abhaygarg12493 У вас нет точки вопроса, которая * не * исправляет ошибку. Источники работают нормально и работают в других браузерах. Я знаю, почему сообщение показывает *, и сказал это в вопросе *: я предоставляю только HLS и источник RTMP, и браузер, в котором я вижу это сообщение об ошибке (Firefox без установленного Flash), тоже не может играть. Я хочу обнаружить, когда я в браузере, который не поддерживает ни один из моих источников, чтобы сообщить пользователю установить Flash. –

ответ

3

.onSetupError (JW Player 6) или .on ('setupError') (JW Player 7) должен поймать это. http://support.jwplayer.com/customer/portal/articles/1413089-javascript-api-reference

Кроме того, JW Player 6 имеет опцию «fallback: false», которую вы можете передать при настройке плеера. Добавление этого параметра должно помешать JW Player показывать сообщение, позволяя вместо этого разместить собственное сообщение. Я не уверен, поддерживает ли JW7 это или нет.

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

0

дополнительно, чтобы воспроизвести пользовательское сообщение на setupError, создайте функцию, которая настраивает плеер с помощью пользовательского видеофайла (если причиной плохого видеофайла является причина возникновения вашей установкиError).

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