我在 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);
}
});
});````
一言难尽
无限加载可能是由于防火墙政策、地理封锁IP、网速慢、服务器连接问题或缓冲逻辑引起的。
可以提供日志吗?
谢谢。