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 const tempRemoteDuckConf = Config.get( 26 'setting.basic.tempRemoteDuck', 27 ); 28 if (tempRemoteDuckConf === '降低音量') { 29 if (paused) { 30 return TrackPlayer.setVolume(0.5); 31 } else { 32 return TrackPlayer.setVolume(1); 33 } 34 } else { 35 if (paused) { 36 resumeState = await TrackPlayer.getState(); 37 return MusicQueue.pause(); 38 } else if (!musicIsPaused(resumeState)) { 39 return MusicQueue.play(); 40 } 41 } 42 }, 43 ); 44 TrackPlayer.addEventListener(Event.PlaybackProgressUpdated, evt => { 45 Config.set('status.music.progress', evt.position, false); 46 }); 47}; 48