From 5b8d53d48b30bc98776ff8d74d827ba398108d7c Mon Sep 17 00:00:00 2001 From: Colin Clark Date: Fri, 10 Oct 2025 15:39:53 -0400 Subject: [PATCH] gh-28: Wraps media setup logic in a one-off canplay listener. --- src/room.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/room.js b/src/room.js index 4b06679..9e29f64 100644 --- a/src/room.js +++ b/src/room.js @@ -368,15 +368,19 @@ class Track { src.setMaxDistance(AudioMaxDistance) // Toggle play once to initialise mobile playback - let playPromise = el.play() - if (playPromise !== undefined) { - playPromise.then(_ => { - el.pause() - }) - .catch(error => { - console.error("pause for source "+s.id+" track "+ index + " failed", error, error.stack) - }) - } + el.addEventListener("canplay", () => { + let playPromise = el.play() + if (playPromise !== undefined) { + playPromise.then(_ => { + el.pause() + }) + .catch(error => { + console.error("pause for source "+s.id+" track "+ index + " failed", error, error.stack) + }) + } + }, { + once: true + }) let lastSync = Date.now() performanceTime.addEventListener('timeSync', function() {