From 9dd0831c9efb145e1aaa84d92f9e65d823927e78 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Fri, 25 Mar 2022 11:10:45 -0400 Subject: [PATCH] Fix crash on playing next item in queue --- assets/js/plugins/NativeAudioPlayer.staticjs | 8 +++++--- components/NativeShellWebView.js | 8 ++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/assets/js/plugins/NativeAudioPlayer.staticjs b/assets/js/plugins/NativeAudioPlayer.staticjs index b457a7362..2ebdfa375 100644 --- a/assets/js/plugins/NativeAudioPlayer.staticjs +++ b/assets/js/plugins/NativeAudioPlayer.staticjs @@ -65,10 +65,12 @@ class NativeAudioPlayer { return; } - // Playback has stopped + // Playback has finished and should be reported as stopped if (status.isFinished) { - this._isPlaying = false; - this._safelyTriggerEvent('stopped'); + if (this._isPlaying) { + this._isPlaying = false; + this._safelyTriggerEvent('stopped'); + } return; } diff --git a/components/NativeShellWebView.js b/components/NativeShellWebView.js index 5e1e2714c..99617b367 100644 --- a/components/NativeShellWebView.js +++ b/components/NativeShellWebView.js @@ -104,15 +104,11 @@ true; } break; case 'ExpoAudioPlayer.play': - rootStore.mediaStore.type = MediaTypes.Audio; - rootStore.mediaStore.uri = data.url; - rootStore.mediaStore.backdropUri = data.backdropUrl; - rootStore.mediaStore.positionTicks = data.playerStartPositionTicks; - break; case 'ExpoVideoPlayer.play': - rootStore.mediaStore.type = MediaTypes.Video; + rootStore.mediaStore.type = event === 'ExpoAudioPlayer.play' ? MediaTypes.Audio : MediaTypes.Video; rootStore.mediaStore.uri = data.url; rootStore.mediaStore.backdropUri = data.backdropUrl; + rootStore.mediaStore.isFinished = false; rootStore.mediaStore.positionTicks = data.playerStartPositionTicks; break; case 'ExpoAudioPlayer.playPause':