From ea0dfff9c1e7d8e6e03bccdc0ab15d098b31a10d Mon Sep 17 00:00:00 2001 From: MAZE Date: Sat, 11 May 2024 15:57:20 +0430 Subject: [PATCH] feat: add media session (wip) --- src/hooks/use-media-session.ts | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/hooks/use-media-session.ts b/src/hooks/use-media-session.ts index ce2b1ae..bfb113d 100644 --- a/src/hooks/use-media-session.ts +++ b/src/hooks/use-media-session.ts @@ -3,25 +3,29 @@ import { useEffect } from 'react'; import { useSoundStore } from '@/store'; export function useMediaSession() { + const play = useSoundStore(state => state.play); + const pause = useSoundStore(state => state.pause); const isPlaying = useSoundStore(state => state.isPlaying); useEffect(() => { - if ('mediaSession' in navigator) { - if (isPlaying) { - console.log('hello'); - navigator.mediaSession.metadata = new MediaMetadata({ - title: 'Moodist - Ambient Sounds', - }); + try { + navigator.mediaSession.setActionHandler('play', play); + navigator.mediaSession.setActionHandler('pause', pause); + navigator.mediaSession.setActionHandler('stop', pause); + } catch (error) { + console.log('Media session is no supported yet'); + } + }, [play, pause]); - navigator.mediaSession.playbackState = 'playing'; + useEffect(() => { + if (isPlaying) { + navigator.mediaSession.metadata = new MediaMetadata({ + title: 'Moodist', + }); - navigator.mediaSession.setActionHandler('play', function () {}); - navigator.mediaSession.setActionHandler('pause', function () {}); - navigator.mediaSession.setActionHandler('stop', function () {}); - } else { - navigator.mediaSession.playbackState = 'paused'; - console.log('bye'); - } + navigator.mediaSession.playbackState = 'playing'; + } else { + navigator.mediaSession.playbackState = 'paused'; } }, [isPlaying]); }