我在 Tizen Studio 中制作了一个应用程序,它是一个 hls 流播放器,但保持无限加载

问题描述 投票:0回答:1

我在 Tizen Studio 中制作了一个应用程序,它是一个 hls 流播放器,它使用 hls.js 播放流并具有远程控制和更多东西,当我在 tizen studio 模拟器中测试它时,一切正常,但在我打包并添加之后它对三星卖家质量检查测试人员一直说它无限负载。可能是什么问题呢? 这是 main.js

  var videoPlayer = document.getElementById("videoPlayer");
  videoPlayer.tabIndex = 0; // add tabindex to focus the element
  videoPlayer.requestFullscreen();

  var player = new shaka.Player(videoPlayer);

  player.configure({
    abr: {
      enabled: true
    }
  });

  var manifestUri = 'removed';

  player.load(manifestUri).then(function() {
    console.log('The video has now been loaded!');
    videoPlayer.requestFullscreen();
  }).catch(function(error) {
    console.error('Error code', error.code, 'object', error);
  });

  player.addEventListener('error', function(event) {
    console.error('Error code', event.detail.code, 'object', event.detail);
    console.log('A video playback error occurred.');
    if (event.detail.code === 6003 || event.detail.code === 6004 || event.detail.code === 6005) {
      console.log('The video failed to load due to a network error. Retrying...');
      showOfflineNotification();
      setTimeout(function() {
        player.load(manifestUri);
      }, 5000);
    }
  });

  function showOfflineNotification() {
    var offlineNotification = document.getElementById("offline-popup");
    offlineNotification.style.display = "block";
    videoPlayer.style.display = "none";
  }

  function showOnlineNotification() {
    var offlineNotification = document.getElementById("offline-popup");
    offlineNotification.style.display = "none";
    videoPlayer.style.display = "block";
    player.load(manifestUri).then(function() {
      console.log('The video has now been loaded!');
      videoPlayer.requestFullscreen();
    }).catch(function(error) {
      console.error('Error code', error.code, 'object', error);
    });
  }

  window.addEventListener("online", showOnlineNotification);
  window.addEventListener("offline", showOfflineNotification);

  if (navigator.onLine) {
    showOnlineNotification();
  } else {
    showOfflineNotification();
  }

  // Add event listeners to the buttons
  var playButton = document.getElementById("playButton");
  var pauseButton = document.getElementById("pauseButton");
  var stopButton = document.getElementById("stopButton");
  var forwardButton = document.getElementById("forwardButton");
  var backwardButton = document.getElementById("backwardButton");

  playButton.addEventListener("click", function() {
    player.play();
  });

  pauseButton.addEventListener("click", function() {
    player.pause();
  });

  stopButton.addEventListener("click", function() {
    player.pause();
    player.seek(0);
  });

  forwardButton.addEventListener("click", function() {
    var currentTime = player.getPlaybackRate();
    player.seek(currentTime + 10);
  });

  backwardButton.addEventListener("click", function() {
    var currentTime = player.getPlaybackRate();
    player.seek(currentTime - 10);
  });
  
//Register listeners for remote control buttons
  tizen.tvinputdevice.registerKey("MediaPlay", function() {
    player.play();
  });

  tizen.tvinputdevice.registerKey("MediaPause", function() {
    player.pause();
  });

  tizen.tvinputdevice.registerKey("MediaStop", function() {
    player.pause();
    player.seek(0);
  });

  tizen.tvinputdevice.registerKey("MediaFastForward", function() {
    var currentTime = player.getPlaybackRate();
    player.seek(currentTime + 10);
  });

  tizen.tvinputdevice.registerKey("MediaRewind", function() {
    var currentTime = player.getPlaybackRate();
    player.seek(currentTime - 10);
  });


//Add event listener to handle keyboard controls
  document.addEventListener("keydown", function(event) {
    if (event.target !== videoPlayer) return; // check if videoPlayer has focus
    switch (event.keyCode) {
      case 10009: // Return key
        window.history.back();
        break;
      case 415: // Play key
        if (player.isPaused()) {
          player.play();
        } else {
          player.pause();
        }
        break;
      case 413: // Stop key
        player.pause();
        player.seek(0);
        break;
      case 417: // Forward key
        var currentTime = player.getPlaybackRate();
        player.seek(currentTime + 10);
        break;
      case 412: // Backward key
        var currentTime = player.getPlaybackRate();
        player.seek(currentTime - 10);
        break;
      default:
        console.log("Unsupported key: " + event.keyCode);
    }
  });
});````
javascript tizen samsung
1个回答
0
投票

一言难尽

无限加载可能是由于防火墙政策、地理封锁IP、网速慢、服务器连接问题或缓冲逻辑引起的。

可以提供日志吗?

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.