diff options
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/meshbay-android/app/src/main/kotlin/org/meshbay/client/MainActivity.kt | 4 | ||||
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/music-player.js | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/packages/meshbay-android/app/src/main/kotlin/org/meshbay/client/MainActivity.kt b/packages/meshbay-android/app/src/main/kotlin/org/meshbay/client/MainActivity.kt index a781350..ea31bca 100644 --- a/packages/meshbay-android/app/src/main/kotlin/org/meshbay/client/MainActivity.kt +++ b/packages/meshbay-android/app/src/main/kotlin/org/meshbay/client/MainActivity.kt @@ -98,7 +98,9 @@ class MainActivity : Activity() { domStorageEnabled = true // IndexedDB and localStorage: session, resume positions allowFileAccess = false allowContentAccess = false - mediaPlaybackRequiresUserGesture = true + // The page is our own bundled UI. With `true`, WebView wants play() inside the tap + // handler itself, and the music player only calls it after fetching the track. + mediaPlaybackRequiresUserGesture = false setSupportMultipleWindows(false) mixedContentMode = android.webkit.WebSettings.MIXED_CONTENT_NEVER_ALLOW } diff --git a/packages/meshbay-hub/src/meshbay_hub/static/music-player.js b/packages/meshbay-hub/src/meshbay_hub/static/music-player.js index e8124fa..154d761 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/music-player.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/music-player.js @@ -459,6 +459,9 @@ function MusicPlayerBar({ getConnection, queue, onClose, userPrefs, onSaveQueue prefetchNext(pos); } catch (err) { if (loadTokenRef.current !== myToken) return; + // Autoplay refused (no recent tap): the track is loaded and fine, it + // waits for the play button. Not an error, and no reason to skip it. + if (err && err.name === 'NotAllowedError') { setPlaying(false); prefetchNext(pos); return; } setError(err.message || String(err)); setPlaying(false); // `fetchTrackBlob` throws `err_transport` when no node answered for @@ -524,7 +527,7 @@ function MusicPlayerBar({ getConnection, queue, onClose, userPrefs, onSaveQueue const audio = audioRef.current; if (!audio) return; if (playing) { audio.pause(); setPlaying(false); } - else { audio.play().then(() => setPlaying(true)).catch(() => {}); } + else { audio.play().then(() => { setError(''); setPlaying(true); }).catch(() => {}); } }, [playing]); // Reshuffling keeps the currently playing track in place — turning shuffle |