close now playing on no track

fix bugs caused by not queueing service commands
This commit is contained in:
austinried
2021-07-07 21:30:28 +09:00
parent abc9ed2bc6
commit 5fdadfe598
6 changed files with 32 additions and 14 deletions

View File

@@ -1,23 +1,28 @@
import TrackPlayer, { Event } from 'react-native-track-player'
import { trackPlayerCommands } from '../state/trackplayer'
module.exports = async function () {
TrackPlayer.addEventListener(Event.RemotePlay, () => TrackPlayer.play())
TrackPlayer.addEventListener(Event.RemotePause, () => TrackPlayer.pause())
TrackPlayer.addEventListener(Event.RemoteStop, () => TrackPlayer.destroy())
TrackPlayer.addEventListener(Event.RemotePlay, () => trackPlayerCommands.enqueue(TrackPlayer.play))
TrackPlayer.addEventListener(Event.RemotePause, () => trackPlayerCommands.enqueue(TrackPlayer.pause))
TrackPlayer.addEventListener(Event.RemoteStop, () => trackPlayerCommands.enqueue(TrackPlayer.destroy))
TrackPlayer.addEventListener(Event.RemoteDuck, data => {
if (data.permanent) {
TrackPlayer.stop()
trackPlayerCommands.enqueue(TrackPlayer.stop)
return
}
if (data.paused) {
TrackPlayer.pause()
trackPlayerCommands.enqueue(TrackPlayer.pause)
} else {
TrackPlayer.play()
trackPlayerCommands.enqueue(TrackPlayer.play)
}
})
TrackPlayer.addEventListener(Event.RemoteNext, () => TrackPlayer.skipToNext().catch(() => {}))
TrackPlayer.addEventListener(Event.RemotePrevious, () => TrackPlayer.skipToPrevious().catch(() => {}))
TrackPlayer.addEventListener(Event.RemoteNext, () =>
trackPlayerCommands.enqueue(() => TrackPlayer.skipToNext().catch(() => {})),
)
TrackPlayer.addEventListener(Event.RemotePrevious, () =>
trackPlayerCommands.enqueue(() => TrackPlayer.skipToPrevious().catch(() => {})),
)
}