import { Audio } from 'expo-av'; import React, { useEffect, useRef } from 'react'; export enum ERingerSounds { DIALTONE = 'dialtone', RINGTONE = 'ringtone' } const Ringer = React.memo(({ ringer }: { ringer: ERingerSounds }) => { const sound = useRef(new Audio.Sound()); useEffect(() => { const loadAndPlay = async () => { try { const soundFile = ringer === ERingerSounds.DIALTONE ? require(`./dialtone.mp3`) : require(`./ringtone.mp3`); await sound.current.loadAsync(soundFile); await sound.current.playAsync(); await sound.current.setIsLoopingAsync(true); } catch (error) { console.error('Error loading sound:', error); } }; loadAndPlay(); return () => { sound.current?.unloadAsync(); }; }, []); return null; }); export default Ringer;