pull/256/head
Ty Fiero 9 months ago
parent 9e60fee6ee
commit 34207314f5

@ -0,0 +1,10 @@
// store.js
import { create } from "zustand";
const useStore = create((set: any) => ({
count: 0,
increase: () => set((state: any) => ({ count: state.count + 1 })),
decrease: () => set((state: any) => ({ count: state.count - 1 })),
}));
export default useStore;

@ -0,0 +1,38 @@
import { useEffect, useState } from "react";
import { Audio, InterruptionModeAndroid, InterruptionModeIOS } from "expo-av";
const useSoundEffect = (soundFile) => {
const [sound, setSound] = useState(null); // Explicitly set initial state to null
useEffect(() => {
const loadSound = async () => {
// await Audio.setAudioModeAsync({
// staysActiveInBackground: true,
// shouldDuckAndroid: true,
// playThroughEarpieceAndroid: false,
// interruptionModeIOS: InterruptionModeIOS.DoNotMix,
// interruptionModeAndroid: InterruptionModeAndroid.DoNotMix,
// allowsRecordingIOS: false,
// playsInSilentModeIOS: true,
// });
const { sound: newSound } = await Audio.Sound.createAsync(soundFile);
setSound(newSound);
};
loadSound();
return () => {
sound?.unloadAsync();
};
}, [soundFile, sound]); // Include sound in the dependency array
const playSound = async () => {
if (sound) {
await sound.playAsync();
}
};
return playSound;
};
export default useSoundEffect;
Loading…
Cancel
Save