PlayerMessage.Target, Renderer, RendererCapabilitiesFakeAudioRenderer, FakeMediaClockRenderer, FakeVideoRendererpublic class FakeRenderer extends BaseRenderer
Renderer that supports any format with the matching track type.
The renderer verifies that all the formats it reads have the provided track type.
Renderer.State, Renderer.VideoScalingMode, Renderer.WakeupListenerRendererCapabilities.AdaptiveSupport, RendererCapabilities.Capabilities, RendererCapabilities.FormatSupport, RendererCapabilities.TunnelingSupport| Modifier and Type | Field | Description |
|---|---|---|
boolean |
isEnded |
|
int |
positionResetCount |
|
int |
sampleBufferReadCount |
MSG_CUSTOM_BASE, MSG_SET_AUDIO_ATTRIBUTES, MSG_SET_AUDIO_SESSION_ID, MSG_SET_AUX_EFFECT_INFO, MSG_SET_CAMERA_MOTION_LISTENER, MSG_SET_SCALING_MODE, MSG_SET_SKIP_SILENCE_ENABLED, MSG_SET_SURFACE, MSG_SET_VIDEO_DECODER_OUTPUT_BUFFER_RENDERER, MSG_SET_VIDEO_FRAME_METADATA_LISTENER, MSG_SET_VOLUME, MSG_SET_WAKEUP_LISTENER, STATE_DISABLED, STATE_ENABLED, STATE_STARTED, VIDEO_SCALING_MODE_DEFAULT, VIDEO_SCALING_MODE_SCALE_TO_FIT, VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPINGADAPTIVE_NOT_SEAMLESS, ADAPTIVE_NOT_SUPPORTED, ADAPTIVE_SEAMLESS, ADAPTIVE_SUPPORT_MASK, FORMAT_EXCEEDS_CAPABILITIES, FORMAT_HANDLED, FORMAT_SUPPORT_MASK, FORMAT_UNSUPPORTED_DRM, FORMAT_UNSUPPORTED_SUBTYPE, FORMAT_UNSUPPORTED_TYPE, TUNNELING_NOT_SUPPORTED, TUNNELING_SUPPORT_MASK, TUNNELING_SUPPORTED| Constructor | Description |
|---|---|
FakeRenderer(int trackType) |
| Modifier and Type | Method | Description |
|---|---|---|
List<Format> |
getFormatsRead() |
Returns the list of formats read by the renderer.
|
String |
getName() |
Returns the name of this renderer, for logging and debugging purposes.
|
boolean |
isEnded() |
Whether the renderer is ready for the
ExoPlayer instance to transition to Player.STATE_ENDED. |
boolean |
isReady() |
Whether the renderer is able to immediately render media from the current position.
|
protected void |
onDisabled() |
Called when the renderer is disabled.
|
protected void |
onFormatChanged(Format format) |
Called when the renderer reads a new format.
|
protected void |
onPositionReset(long positionUs,
boolean joining) |
Called when the position is reset.
|
void |
render(long positionUs,
long elapsedRealtimeUs) |
Incrementally renders the
SampleStream. |
protected boolean |
shouldProcessBuffer(long bufferTimeUs,
long playbackPositionUs) |
Called before the renderer processes a buffer.
|
int |
supportsFormat(Format format) |
Returns the extent to which the
Renderer supports a given format. |
createRendererException, createRendererException, disable, enable, getCapabilities, getConfiguration, getFormatHolder, getIndex, getLastResetPositionUs, getMediaClock, getReadingPositionUs, getState, getStream, getStreamFormats, getTrackType, handleMessage, hasReadStreamToEnd, isCurrentStreamFinal, isSourceReady, maybeThrowStreamError, onEnabled, onReset, onStarted, onStopped, onStreamChanged, readSource, replaceStream, reset, resetPosition, setCurrentStreamFinal, setIndex, skipSource, start, stop, supportsMixedMimeTypeAdaptationclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsetPlaybackSpeedpublic boolean isEnded
public int positionResetCount
public int sampleBufferReadCount
public String getName()
Rendererprotected void onPositionReset(long positionUs,
boolean joining)
throws ExoPlaybackException
BaseRendererBaseRenderer.onStreamChanged(Format[], long, long) has been called, and also when a position discontinuity
is encountered.
After a position reset, the renderer's SampleStream is guaranteed to provide samples
starting from a key frame.
The default implementation is a no-op.
onPositionReset in class BaseRendererpositionUs - The new playback position in microseconds.joining - Whether this renderer is being enabled to join an ongoing playback.ExoPlaybackException - If an error occurs.public void render(long positionUs,
long elapsedRealtimeUs)
throws ExoPlaybackException
RendererSampleStream.
If the renderer is in the Renderer.STATE_ENABLED state then each call to this method will do
work toward being ready to render the SampleStream when the renderer is started. If the
renderer is in the Renderer.STATE_STARTED state then calls to this method will render the
SampleStream in sync with the specified media positions.
The renderer may also render the very start of the media at the current position (e.g. the
first frame of a video stream) while still in the Renderer.STATE_ENABLED state, unless it's the
initial start of the media after calling Renderer.enable(RendererConfiguration, Format[],
SampleStream, long, boolean, boolean, long, long) with mayRenderStartOfStream set to
false.
This method should return quickly, and should not block if the renderer is unable to make useful progress.
This method may be called when the renderer is in the following states: Renderer.STATE_ENABLED, Renderer.STATE_STARTED.
positionUs - The current media time in microseconds, measured at the start of the current
iteration of the rendering loop.elapsedRealtimeUs - SystemClock.elapsedRealtime() in microseconds,
measured at the start of the current iteration of the rendering loop.ExoPlaybackException - If an error occurs.public boolean isReady()
Renderer
If the renderer is in the Renderer.STATE_STARTED state then returning true indicates that the
renderer has everything that it needs to continue playback. Returning false indicates that
the player should pause until the renderer is ready.
If the renderer is in the Renderer.STATE_ENABLED state then returning true indicates that the
renderer is ready for playback to be started. Returning false indicates that it is not.
This method may be called when the renderer is in the following states:
Renderer.STATE_ENABLED, Renderer.STATE_STARTED.
public boolean isEnded()
RendererExoPlayer instance to transition to Player.STATE_ENDED. The player will make this transition as soon as true is returned
by all of its renderers.
This method may be called when the renderer is in the following states: Renderer.STATE_ENABLED, Renderer.STATE_STARTED.
@Capabilities public int supportsFormat(Format format) throws ExoPlaybackException
RendererCapabilitiesRenderer supports a given format.format - The format.RendererCapabilities.Capabilities for this format.ExoPlaybackException - If an error occurs.protected void onDisabled()
BaseRendererThe default implementation is a no-op.
onDisabled in class BaseRendererprotected void onFormatChanged(Format format)
public List<Format> getFormatsRead()
protected boolean shouldProcessBuffer(long bufferTimeUs,
long playbackPositionUs)
bufferTimeUs - The buffer timestamp, in microseconds.playbackPositionUs - The playback position, in microseconds