From 3dfcef6ef15a28a0c0e53add74c92641d9b8a70c Mon Sep 17 00:00:00 2001 From: Andrea Jonus Date: Fri, 1 May 2020 00:52:58 +1000 Subject: [PATCH] Forward ExoPlaybackException exceptions to the Flutter plugin (#80) * Forward ExoPlaybackException exceptions to playbackEventStream * Ignore error events in secondary streams --- .../java/com/ryanheise/just_audio/AudioPlayer.java | 4 ++++ lib/just_audio.dart | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/com/ryanheise/just_audio/AudioPlayer.java b/android/src/main/java/com/ryanheise/just_audio/AudioPlayer.java index c7a9fa1..7bd6110 100644 --- a/android/src/main/java/com/ryanheise/just_audio/AudioPlayer.java +++ b/android/src/main/java/com/ryanheise/just_audio/AudioPlayer.java @@ -349,6 +349,10 @@ public class AudioPlayer implements MethodCallHandler, Player.EventListener, Met prepareResult.error(errorCode, errorMsg, null); prepareResult = null; } + + if (eventSink != null) { + eventSink.error(errorCode, errorMsg, null); + } } private void transition(final PlaybackState newState) { diff --git a/lib/just_audio.dart b/lib/just_audio.dart index 501d686..4d92707 100644 --- a/lib/just_audio.dart +++ b/lib/just_audio.dart @@ -132,15 +132,15 @@ class AudioPlayer { isPublic: data[5][1][5])), )); _eventChannelStreamSubscription = - _eventChannelStream.listen(_playbackEventSubject.add); + _eventChannelStream.listen(_playbackEventSubject.add, onError: _playbackEventSubject.addError); _playbackStateSubject - .addStream(playbackEventStream.map((state) => state.state).distinct()); + .addStream(playbackEventStream.map((state) => state.state).distinct().handleError((err,stack){ /* noop */ })); _bufferingSubject.addStream( - playbackEventStream.map((state) => state.buffering).distinct()); + playbackEventStream.map((state) => state.buffering).distinct().handleError((err,stack){ /* noop */ })); _bufferedPositionSubject.addStream( - playbackEventStream.map((state) => state.bufferedPosition).distinct()); + playbackEventStream.map((state) => state.bufferedPosition).distinct().handleError((err,stack){ /* noop */ })); _icyMetadataSubject.addStream( - playbackEventStream.map((state) => state.icyMetadata).distinct()); + playbackEventStream.map((state) => state.icyMetadata).distinct().handleError((err,stack){ /* noop */ })); _fullPlaybackStateSubject.addStream(Rx.combineLatest3( playbackStateStream,