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, () => 14 MusicQueue.skipToNext(), 15 ); 16 TrackPlayer.addEventListener( 17 Event.RemoteDuck, 18 async ({paused, permanent}) => { 19 if (Config.get('setting.basic.notInterrupt')) { 20 return; 21 } 22 if (permanent) { 23 return MusicQueue.pause(); 24 } 25 if (paused) { 26 resumeState = await TrackPlayer.getState(); 27 return MusicQueue.pause(); 28 } else if (!musicIsPaused(resumeState)) { 29 return MusicQueue.play(); 30 } 31 }, 32 ); 33 TrackPlayer.addEventListener(Event.PlaybackProgressUpdated, evt => { 34 Config.set('status.music.progress', evt.position); 35 }); 36}; 37