Add getRenderer method to ExoPlayer.
This allows access to custom renderers, for example to send messages or to access custom fields and methods. PiperOrigin-RevId: 424878963
This commit is contained in:
parent
596d98a048
commit
2521ee6d9f
@ -1135,6 +1135,15 @@ public interface ExoPlayer extends Player {
|
|||||||
@C.TrackType
|
@C.TrackType
|
||||||
int getRendererType(int index);
|
int getRendererType(int index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the renderer at the given index.
|
||||||
|
*
|
||||||
|
* @param index The index of the renderer.
|
||||||
|
* @return The renderer at this index.
|
||||||
|
*/
|
||||||
|
@UnstableApi
|
||||||
|
Renderer getRenderer(int index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the track selector that this player uses, or null if track selection is not supported.
|
* Returns the track selector that this player uses, or null if track selection is not supported.
|
||||||
*/
|
*/
|
||||||
|
@ -955,6 +955,10 @@ import java.util.concurrent.CopyOnWriteArraySet;
|
|||||||
return renderers[index].getTrackType();
|
return renderers[index].getTrackType();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Renderer getRenderer(int index) {
|
||||||
|
return renderers[index];
|
||||||
|
}
|
||||||
|
|
||||||
public TrackSelector getTrackSelector() {
|
public TrackSelector getTrackSelector() {
|
||||||
return trackSelector;
|
return trackSelector;
|
||||||
}
|
}
|
||||||
|
@ -358,8 +358,7 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
|
|
||||||
private static final String TAG = "SimpleExoPlayer";
|
private static final String TAG = "SimpleExoPlayer";
|
||||||
|
|
||||||
protected final Renderer[] renderers;
|
private final Renderer[] renderers;
|
||||||
|
|
||||||
private final ConditionVariable constructorFinished;
|
private final ConditionVariable constructorFinished;
|
||||||
private final Context applicationContext;
|
private final Context applicationContext;
|
||||||
private final ExoPlayerImpl player;
|
private final ExoPlayerImpl player;
|
||||||
@ -1360,6 +1359,12 @@ public class SimpleExoPlayer extends BasePlayer
|
|||||||
return player.getRendererType(index);
|
return player.getRendererType(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Renderer getRenderer(int index) {
|
||||||
|
verifyApplicationThread();
|
||||||
|
return player.getRenderer(index);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TrackSelector getTrackSelector() {
|
public TrackSelector getTrackSelector() {
|
||||||
verifyApplicationThread();
|
verifyApplicationThread();
|
||||||
|
@ -28,6 +28,7 @@ import androidx.media3.exoplayer.DecoderCounters;
|
|||||||
import androidx.media3.exoplayer.ExoPlaybackException;
|
import androidx.media3.exoplayer.ExoPlaybackException;
|
||||||
import androidx.media3.exoplayer.ExoPlayer;
|
import androidx.media3.exoplayer.ExoPlayer;
|
||||||
import androidx.media3.exoplayer.PlayerMessage;
|
import androidx.media3.exoplayer.PlayerMessage;
|
||||||
|
import androidx.media3.exoplayer.Renderer;
|
||||||
import androidx.media3.exoplayer.SeekParameters;
|
import androidx.media3.exoplayer.SeekParameters;
|
||||||
import androidx.media3.exoplayer.analytics.AnalyticsCollector;
|
import androidx.media3.exoplayer.analytics.AnalyticsCollector;
|
||||||
import androidx.media3.exoplayer.analytics.AnalyticsListener;
|
import androidx.media3.exoplayer.analytics.AnalyticsListener;
|
||||||
@ -293,6 +294,11 @@ public class StubExoPlayer extends StubPlayer implements ExoPlayer {
|
|||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Renderer getRenderer(int index) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public TrackSelector getTrackSelector() {
|
public TrackSelector getTrackSelector() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user