Commit aec6fe7e by kimvde Committed by Oliver Woodman

Notify listeners when audio session ID is set

PiperOrigin-RevId: 301187369
parent 354d5aea
...@@ -698,6 +698,9 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -698,6 +698,9 @@ public class SimpleExoPlayer extends BasePlayer
@Override @Override
public void setAudioSessionId(int audioSessionId) { public void setAudioSessionId(int audioSessionId) {
verifyApplicationThread(); verifyApplicationThread();
if (this.audioSessionId == audioSessionId) {
return;
}
this.audioSessionId = audioSessionId; this.audioSessionId = audioSessionId;
for (Renderer renderer : renderers) { for (Renderer renderer : renderers) {
if (renderer.getTrackType() == C.TRACK_TYPE_AUDIO) { if (renderer.getTrackType() == C.TRACK_TYPE_AUDIO) {
...@@ -708,6 +711,9 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -708,6 +711,9 @@ public class SimpleExoPlayer extends BasePlayer
.send(); .send();
} }
} }
if (audioSessionId != C.AUDIO_SESSION_ID_UNSET) {
notifyAudioSessionIdSet();
}
} }
@Override @Override
...@@ -1816,6 +1822,19 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -1816,6 +1822,19 @@ public class SimpleExoPlayer extends BasePlayer
} }
} }
private void notifyAudioSessionIdSet() {
for (AudioListener audioListener : audioListeners) {
// Prevent duplicate notification if a listener is both a AudioRendererEventListener and
// a AudioListener, as they have the same method signature.
if (!audioDebugListeners.contains(audioListener)) {
audioListener.onAudioSessionId(audioSessionId);
}
}
for (AudioRendererEventListener audioDebugListener : audioDebugListeners) {
audioDebugListener.onAudioSessionId(audioSessionId);
}
}
@SuppressWarnings("SuspiciousMethodCalls") @SuppressWarnings("SuspiciousMethodCalls")
private void notifySkipSilenceEnabledChanged() { private void notifySkipSilenceEnabledChanged() {
for (AudioListener listener : audioListeners) { for (AudioListener listener : audioListeners) {
...@@ -1986,16 +2005,7 @@ public class SimpleExoPlayer extends BasePlayer ...@@ -1986,16 +2005,7 @@ public class SimpleExoPlayer extends BasePlayer
return; return;
} }
audioSessionId = sessionId; audioSessionId = sessionId;
for (AudioListener audioListener : audioListeners) { notifyAudioSessionIdSet();
// Prevent duplicate notification if a listener is both a AudioRendererEventListener and
// a AudioListener, as they have the same method signature.
if (!audioDebugListeners.contains(audioListener)) {
audioListener.onAudioSessionId(sessionId);
}
}
for (AudioRendererEventListener audioDebugListener : audioDebugListeners) {
audioDebugListener.onAudioSessionId(sessionId);
}
} }
@Override @Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment