1e22d5e4fS猫头猫import Config from '@/core/config'; 2846ca2ccS猫头猫import musicIsPaused from '@/utils/musicIsPaused'; 3846ca2ccS猫头猫import TrackPlayer, {Event, State} from 'react-native-track-player'; 4242960d3S猫头猫import MusicQueue from '../core/musicQueue'; 5bf6e62f2S猫头猫 6846ca2ccS猫头猫let resumeState: State; 7bf6e62f2S猫头猫module.exports = async function () { 8bf6e62f2S猫头猫 TrackPlayer.addEventListener(Event.RemotePlay, () => MusicQueue.play()); 9bf6e62f2S猫头猫 TrackPlayer.addEventListener(Event.RemotePause, () => MusicQueue.pause()); 10846ca2ccS猫头猫 TrackPlayer.addEventListener(Event.RemotePrevious, () => 11846ca2ccS猫头猫 MusicQueue.skipToPrevious(), 12846ca2ccS猫头猫 ); 134060c00aS猫头猫 TrackPlayer.addEventListener(Event.RemoteNext, () => 144060c00aS猫头猫 MusicQueue.skipToNext(), 154060c00aS猫头猫 ); 16846ca2ccS猫头猫 TrackPlayer.addEventListener( 17846ca2ccS猫头猫 Event.RemoteDuck, 18846ca2ccS猫头猫 async ({paused, parmanent}) => { 19e22d5e4fS猫头猫 if (Config.get('setting.basic.notInterrupt')) { 20caaa811bS猫头猫 return; 21caaa811bS猫头猫 } 22eb04a812S猫头猫 if (parmanent) { 23eb04a812S猫头猫 return MusicQueue.pause(); 24eb04a812S猫头猫 } 25eb04a812S猫头猫 if (paused) { 26846ca2ccS猫头猫 resumeState = await TrackPlayer.getState(); 27eb04a812S猫头猫 return MusicQueue.pause(); 28846ca2ccS猫头猫 } else if (!musicIsPaused(resumeState)) { 29eb04a812S猫头猫 return MusicQueue.play(); 30eb04a812S猫头猫 } 31846ca2ccS猫头猫 }, 32846ca2ccS猫头猫 ); 33846ca2ccS猫头猫 TrackPlayer.addEventListener(Event.PlaybackProgressUpdated, evt => { 34e22d5e4fS猫头猫 Config.set('status.music.progress', evt.position); 35846ca2ccS猫头猫 }); 36*ef714860S猫头猫 /** 播放下一个 */ 37*ef714860S猫头猫 TrackPlayer.addEventListener(Event.PlaybackTrackChanged, async evt => { 38*ef714860S猫头猫 // 是track里的,不是playlist里的 39*ef714860S猫头猫 if ( 40*ef714860S猫头猫 evt.nextTrack === 1 && 41*ef714860S猫头猫 !(await TrackPlayer.getTrack(evt.nextTrack))?.url 42*ef714860S猫头猫 ) { 43*ef714860S猫头猫 if (MusicQueue.getRepeatMode() === 'SINGLE') { 44*ef714860S猫头猫 await MusicQueue.play(undefined, true); 45*ef714860S猫头猫 } else { 46*ef714860S猫头猫 console.log('SKIP'); 47*ef714860S猫头猫 await MusicQueue.skipToNext(); 48*ef714860S猫头猫 } 49*ef714860S猫头猫 } 50*ef714860S猫头猫 }); 51bf6e62f2S猫头猫}; 52