From 50f6bdd1fd370529961d9769f7383425642b5424 Mon Sep 17 00:00:00 2001 From: tonihei Date: Mon, 24 Feb 2025 06:32:06 -0800 Subject: [PATCH] Do not change audio capabilities for error recovery without context If the deprecated path without a context is used, the capabilities are set externally and can't recover automatically back to the real capabilities. Issue: androidx/media#2168 PiperOrigin-RevId: 730427339 (cherry picked from commit 5610cc846589aafa416c39567f4f5599e98a77ef) --- .../java/androidx/media3/exoplayer/audio/DefaultAudioSink.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java index 71c7029471..14dce4cf6b 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java @@ -1275,8 +1275,9 @@ public final class DefaultAudioSink implements AudioSink { if (listener != null) { listener.onAudioSinkError(e); } - if (e.isRecoverable) { + if (e.isRecoverable && context != null) { // Change to the audio capabilities supported by all the devices during the error recovery. + // Only do this if we have a context and the capabilities can automatically adjust back. audioCapabilities = DEFAULT_AUDIO_CAPABILITIES; throw e; // Do not delay the exception if it can be recovered at higher level. }