mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Propagate audio session ID to MediaCodecVideoRenderer
Issue: #8190 PiperOrigin-RevId: 350357825
This commit is contained in:
parent
aa2beb080c
commit
d1d28a418d
3 changed files with 24 additions and 15 deletions
|
|
@ -160,13 +160,14 @@ public interface Renderer extends PlayerMessage.Target {
|
||||||
*/
|
*/
|
||||||
int MSG_SET_SKIP_SILENCE_ENABLED = 101;
|
int MSG_SET_SKIP_SILENCE_ENABLED = 101;
|
||||||
/**
|
/**
|
||||||
* A type of a message that can be passed to an audio renderer via {@link
|
* The type of a message that can be passed to audio and video renderers via {@link
|
||||||
* ExoPlayer#createMessage(Target)}. The message payload should be an {@link Integer} instance
|
* ExoPlayer#createMessage(Target)}. The message payload should be an {@link Integer} instance
|
||||||
* representing the audio session ID that will be attached to the underlying audio track.
|
* representing the audio session ID that will be attached to the underlying audio track. Video
|
||||||
|
* renderers that support tunneling will use the audio session ID when tunneling is enabled.
|
||||||
*/
|
*/
|
||||||
int MSG_SET_AUDIO_SESSION_ID = 102;
|
int MSG_SET_AUDIO_SESSION_ID = 102;
|
||||||
/**
|
/**
|
||||||
* A type of a message that can be passed to a {@link Renderer} via {@link
|
* The type of a message that can be passed to a {@link Renderer} via {@link
|
||||||
* ExoPlayer#createMessage(Target)}, to inform the renderer that it can schedule waking up another
|
* ExoPlayer#createMessage(Target)}, to inform the renderer that it can schedule waking up another
|
||||||
* component.
|
* component.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -962,6 +962,7 @@ public class SimpleExoPlayer extends BasePlayer
|
||||||
}
|
}
|
||||||
this.audioSessionId = audioSessionId;
|
this.audioSessionId = audioSessionId;
|
||||||
sendRendererMessage(C.TRACK_TYPE_AUDIO, Renderer.MSG_SET_AUDIO_SESSION_ID, audioSessionId);
|
sendRendererMessage(C.TRACK_TYPE_AUDIO, Renderer.MSG_SET_AUDIO_SESSION_ID, audioSessionId);
|
||||||
|
sendRendererMessage(C.TRACK_TYPE_VIDEO, Renderer.MSG_SET_AUDIO_SESSION_ID, audioSessionId);
|
||||||
if (audioSessionId != C.AUDIO_SESSION_ID_UNSET) {
|
if (audioSessionId != C.AUDIO_SESSION_ID_UNSET) {
|
||||||
notifyAudioSessionIdSet();
|
notifyAudioSessionIdSet();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -501,17 +501,24 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessage(int messageType, @Nullable Object message) throws ExoPlaybackException {
|
public void handleMessage(int messageType, @Nullable Object message) throws ExoPlaybackException {
|
||||||
if (messageType == MSG_SET_SURFACE) {
|
switch (messageType) {
|
||||||
|
case MSG_SET_SURFACE:
|
||||||
setSurface((Surface) message);
|
setSurface((Surface) message);
|
||||||
} else if (messageType == MSG_SET_SCALING_MODE) {
|
break;
|
||||||
|
case MSG_SET_SCALING_MODE:
|
||||||
scalingMode = (Integer) message;
|
scalingMode = (Integer) message;
|
||||||
@Nullable MediaCodecAdapter codec = getCodec();
|
@Nullable MediaCodecAdapter codec = getCodec();
|
||||||
if (codec != null) {
|
if (codec != null) {
|
||||||
codec.setVideoScalingMode(scalingMode);
|
codec.setVideoScalingMode(scalingMode);
|
||||||
}
|
}
|
||||||
} else if (messageType == MSG_SET_VIDEO_FRAME_METADATA_LISTENER) {
|
break;
|
||||||
|
case MSG_SET_VIDEO_FRAME_METADATA_LISTENER:
|
||||||
frameMetadataListener = (VideoFrameMetadataListener) message;
|
frameMetadataListener = (VideoFrameMetadataListener) message;
|
||||||
} else {
|
break;
|
||||||
|
case MSG_SET_AUDIO_SESSION_ID:
|
||||||
|
// TODO: Set tunnelingAudioSessionId.
|
||||||
|
break;
|
||||||
|
default:
|
||||||
super.handleMessage(messageType, message);
|
super.handleMessage(messageType, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue