diff --git a/public/sounds/2-seconds-of-silence.mp3 b/public/sounds/2-seconds-of-silence.mp3
new file mode 100644
index 0000000..acb5f98
Binary files /dev/null and b/public/sounds/2-seconds-of-silence.mp3 differ
diff --git a/src/components/app/app.tsx b/src/components/app/app.tsx
index ac513ed..9ec94c2 100644
--- a/src/components/app/app.tsx
+++ b/src/components/app/app.tsx
@@ -86,20 +86,28 @@ export function App() {
return [...favorites, ...categories];
}, [favoriteSounds, categories]);
- useMediaSession();
+ const audio = useMediaSession();
return (
-
-
-
-
-
-
-
+ <>
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+ >
);
}
diff --git a/src/hooks/use-media-session.ts b/src/hooks/use-media-session.ts
index bfb113d..7680f58 100644
--- a/src/hooks/use-media-session.ts
+++ b/src/hooks/use-media-session.ts
@@ -1,31 +1,28 @@
-import { useEffect } from 'react';
+import { useEffect, useRef } from 'react';
import { useSoundStore } from '@/store';
export function useMediaSession() {
- const play = useSoundStore(state => state.play);
- const pause = useSoundStore(state => state.pause);
+ const ref = useRef(null);
+
const isPlaying = useSoundStore(state => state.isPlaying);
- useEffect(() => {
- 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]);
-
useEffect(() => {
if (isPlaying) {
- navigator.mediaSession.metadata = new MediaMetadata({
- title: 'Moodist',
- });
+ ref.current?.play().then(() => {
+ console.log('hi');
+ navigator.mediaSession.metadata = new MediaMetadata({
+ title: 'Moodist',
+ });
- navigator.mediaSession.playbackState = 'playing';
+ navigator.mediaSession.playbackState = 'playing';
+ });
} else {
+ ref.current?.pause();
+
navigator.mediaSession.playbackState = 'paused';
}
}, [isPlaying]);
+
+ return ref;
}