mirror of
https://gitlab.com/futo-org/fcast.git
synced 2025-08-03 15:57:01 +00:00
WebOS 22 and 6.0 collection of fixes
This commit is contained in:
parent
902ccff8bc
commit
d57e1368b1
13 changed files with 228 additions and 36 deletions
|
@ -40,11 +40,23 @@ if (TARGET === 'electron') {
|
|||
let onSeekCb, onSetVolumeCb, onSetSpeedCb;
|
||||
let playerWindowOpen = false;
|
||||
|
||||
const keepAliveService = window.webOS.service.request(`luna://${serviceId}/`, {
|
||||
method:"keepAlive",
|
||||
parameters: {},
|
||||
onSuccess: (message: any) => {
|
||||
console.log(`Player: keepAlive ${JSON.stringify(message)}`);
|
||||
},
|
||||
onFailure: (message: any) => {
|
||||
console.error(`Player: keepAlive ${JSON.stringify(message)}`);
|
||||
},
|
||||
// onComplete: (message) => {},
|
||||
});
|
||||
|
||||
const playService = window.webOS.service.request(`luna://${serviceId}/`, {
|
||||
method:"play",
|
||||
parameters: {},
|
||||
onSuccess: (message: any) => {
|
||||
console.log(JSON.stringify(message));
|
||||
// console.log(JSON.stringify(message));
|
||||
if (message.value.subscribed === true) {
|
||||
console.log('Player: Registered play handler with service');
|
||||
}
|
||||
|
@ -122,8 +134,10 @@ if (TARGET === 'electron') {
|
|||
setVolumeService.cancel();
|
||||
setSpeedService.cancel();
|
||||
|
||||
// window.open('../main_window/index.html');
|
||||
history.back();
|
||||
// WebOS 22 and earlier does not work well using the history API,
|
||||
// so manually handling page navigation...
|
||||
// history.back();
|
||||
window.open('../main_window/index.html');
|
||||
}
|
||||
},
|
||||
onFailure: (message: any) => {
|
||||
|
|
|
@ -258,6 +258,14 @@ function onPlay(_event, value: PlayMessage) {
|
|||
hlsPlayer.on(Hls.Events.LEVEL_LOADED, (eventName, level: LevelLoadedData) => {
|
||||
isLive = level.details.live;
|
||||
isLivePosition = isLive ? true : false;
|
||||
|
||||
// Event can fire after video load and play initialization
|
||||
if (isLive && playerCtrlLiveBadge.style.display === "none") {
|
||||
playerCtrlLiveBadge.style.display = "block";
|
||||
playerCtrlPosition.style.display = "none";
|
||||
playerCtrlDurationSeparator.style.display = "none";
|
||||
playerCtrlDuration.style.display = "none";
|
||||
}
|
||||
});
|
||||
|
||||
player = new Player(PlayerType.Hls, videoElement, hlsPlayer);
|
||||
|
@ -717,6 +725,10 @@ const volumeIncrement = 0.1;
|
|||
|
||||
function keyDownEventListener(event: any) {
|
||||
// console.log("KeyDown", event);
|
||||
const handledCase = targetKeyDownEventListener(event);
|
||||
if (handledCase) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (event.code) {
|
||||
case 'KeyF':
|
||||
|
@ -729,15 +741,11 @@ function keyDownEventListener(event: any) {
|
|||
event.preventDefault();
|
||||
break;
|
||||
case 'ArrowLeft':
|
||||
// Skip back
|
||||
player.setCurrentTime(Math.max(player.getCurrentTime() - skipInterval, 0));
|
||||
skipBack();
|
||||
event.preventDefault();
|
||||
break;
|
||||
case 'ArrowRight':
|
||||
// Skip forward
|
||||
if (!isLivePosition) {
|
||||
player.setCurrentTime(Math.min(player.getCurrentTime() + skipInterval, player.getDuration()));
|
||||
}
|
||||
skipForward();
|
||||
event.preventDefault();
|
||||
break;
|
||||
case "Home":
|
||||
|
@ -756,7 +764,7 @@ function keyDownEventListener(event: any) {
|
|||
case 'KeyK':
|
||||
case 'Space':
|
||||
case 'Enter':
|
||||
// Pause/Continue
|
||||
// Play/pause toggle
|
||||
if (player.isPaused()) {
|
||||
player.play();
|
||||
} else {
|
||||
|
@ -777,11 +785,20 @@ function keyDownEventListener(event: any) {
|
|||
volumeChangeHandler(Math.max(player.getVolume() - volumeIncrement, 0));
|
||||
break;
|
||||
default:
|
||||
targetKeyDownEventListener(event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function skipBack() {
|
||||
player.setCurrentTime(Math.max(player.getCurrentTime() - skipInterval, 0));
|
||||
}
|
||||
|
||||
function skipForward() {
|
||||
if (!isLivePosition) {
|
||||
player.setCurrentTime(Math.min(player.getCurrentTime() + skipInterval, player.getDuration()));
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener('keydown', keyDownEventListener);
|
||||
|
||||
export {
|
||||
|
@ -806,4 +823,6 @@ export {
|
|||
onPlay,
|
||||
playerCtrlStateUpdate,
|
||||
formatDuration,
|
||||
skipBack,
|
||||
skipForward,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue