Make controls opt-in when joining a running session

experimental
Charlotte Som 2021-12-03 20:20:08 +00:00
parent a69f0f7318
commit f42200b0fe
1 changed files with 9 additions and 2 deletions

View File

@ -9,7 +9,7 @@ import { setupChat, logEventToChat } from "./chat.mjs?v=2";
const createWebSocket = (sessionId, nickname) => { const createWebSocket = (sessionId, nickname) => {
const wsUrl = new URL( const wsUrl = new URL(
`/sess/${sessionId}/subscribe` + `/sess/${sessionId}/subscribe` +
`?nickname=${encodeURIComponent(nickname)}`, `?nickname=${encodeURIComponent(nickname)}`,
window.location.href window.location.href
); );
wsUrl.protocol = { "http:": "ws:", "https:": "wss:" }[wsUrl.protocol]; wsUrl.protocol = { "http:": "ws:", "https:": "wss:" }[wsUrl.protocol];
@ -73,7 +73,7 @@ const setupIncomingEvents = (video, socket) => {
} }
logEventToChat(event); logEventToChat(event);
} catch (_err) {} } catch (_err) { }
}); });
}; };
@ -162,6 +162,13 @@ export const joinSession = async (nickname, sessionId) => {
is_playing is_playing
); );
// By default, we should disable video controls if the video is already playing.
// This solves an issue where Safari users join and seek to 00:00:00 because of
// outgoing events.
if (current_time_ms != 0) {
video.controls = false;
}
setupOutgoingEvents(video, socket); setupOutgoingEvents(video, socket);
setupIncomingEvents(video, socket); setupIncomingEvents(video, socket);
setupChat(socket); setupChat(socket);