1import Config from '@/core/config'; 2import musicIsPaused from '@/utils/musicIsPaused'; 3import TrackPlayer, {Event, State} from 'react-native-track-player'; 4import MusicQueue from '../core/musicQueue'; 5 6let resumeState: State; 7module.exports = async function () { 8 TrackPlayer.addEventListener(Event.RemotePlay, () => MusicQueue.play()); 9 TrackPlayer.addEventListener(Event.RemotePause, () => MusicQueue.pause()); 10 TrackPlayer.addEventListener(Event.RemotePrevious, () => 11 MusicQueue.skipToPrevious(), 12 ); 13 TrackPlayer.addEventListener(Event.RemoteNext, () => MusicQueue.skipToNext()); 14 TrackPlayer.addEventListener( 15 Event.RemoteDuck, 16 async ({paused, parmanent}) => { 17 if (Config.get('setting.basic.notInterrupt')) { 18 return; 19 } 20 if (parmanent) { 21 return MusicQueue.pause(); 22 } 23 if (paused) { 24 resumeState = await TrackPlayer.getState(); 25 return MusicQueue.pause(); 26 } else if (!musicIsPaused(resumeState)) { 27 return MusicQueue.play(); 28 } 29 }, 30 ); 31 TrackPlayer.addEventListener(Event.PlaybackProgressUpdated, evt => { 32 Config.set('status.music.progress', evt.position); 33 }); 34}; 35