stream_player.html 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <div id="bx-stream-player-__suffix__" class="bx-stream-player">
  2. </div>
  3. <script>
  4. let oPlayer = null;
  5. let iBxStreamCounter = 0;
  6. let fLoadPlayer = function () {
  7. if (oPlayer) {
  8. oPlayer.remove();
  9. oPlayer = null;
  10. }
  11. let aSources = __sources__;
  12. oPlayer = OvenPlayer.create("bx-stream-player-__suffix__",
  13. {
  14. sources: aSources,
  15. autoStart: __autostart__,
  16. autoFallback: true,
  17. image: '__image__',
  18. mute: __mute__ // muted player always autoplays
  19. });
  20. // display some message when waiting for the stream to start
  21. oPlayer.on('ready', function() {
  22. oPlayer.getConfig().systemText.api.error[501].message = _t('_bx_stream_txt_wait_for_stream');
  23. });
  24. // reload player when error occured, it's needed to start player automatically when stream starts
  25. var fReloader = function() {
  26. if (!__autostart__)
  27. return;
  28. setTimeout(function () {
  29. if ('undefined' !== typeof(document.hidden) && !document.hidden) {
  30. if (++iBxStreamCounter > 250)
  31. location.reload();
  32. fLoadPlayer();
  33. }
  34. else {
  35. console.log('empty reloader....');
  36. fReloader();
  37. }
  38. }, 5000);
  39. };
  40. oPlayer.on('error', fReloader);
  41. };
  42. fLoadPlayer();
  43. </script>