From 51602a77fbc92d14fa7f134cb25764015f93ceda Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Wed, 4 Jun 2025 14:17:33 +0800 Subject: [PATCH] tts: disable media session controls to keep alive tts (#1333) --- .../src/app/reader/components/tts/TTSControl.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/apps/readest-app/src/app/reader/components/tts/TTSControl.tsx b/apps/readest-app/src/app/reader/components/tts/TTSControl.tsx index 6e750125..c9c3c07f 100644 --- a/apps/readest-app/src/app/reader/components/tts/TTSControl.tsx +++ b/apps/readest-app/src/app/reader/components/tts/TTSControl.tsx @@ -57,6 +57,16 @@ const TTSControl = () => { if (unblockerAudioRef.current) return; unblockerAudioRef.current = document.createElement('audio'); unblockerAudioRef.current.setAttribute('x-webkit-airplay', 'deny'); + unblockerAudioRef.current.addEventListener('play', () => { + if ('mediaSession' in navigator) { + navigator.mediaSession.metadata = null; + navigator.mediaSession.setActionHandler('play', null); + navigator.mediaSession.setActionHandler('pause', null); + navigator.mediaSession.setActionHandler('stop', null); + navigator.mediaSession.setActionHandler('seekbackward', null); + navigator.mediaSession.setActionHandler('seekforward', null); + } + }); unblockerAudioRef.current.preload = 'auto'; unblockerAudioRef.current.loop = true; unblockerAudioRef.current.src = SILENCE_DATA;