CapturingRenderersFactory


@UnstableApi
class CapturingRenderersFactory : RenderersFactory, Dumper.Dumpable


A RenderersFactory that captures interactions with the audio and video MediaCodecAdapter instances and ImageOutput instances.

The captured interactions can be used in a test assertion via the Dumper.Dumpable interface.

Summary

Nested types

A MediaCodecVideoRenderer that will not skip or drop buffers due to slow processing.

A factory for Renderer instances that handle TRACK_TYPE_TEXT tracks.

Public constructors

CapturingRenderersFactory(context: Context!, clock: Clock!)

Creates an instance.

CapturingRenderersFactory(
    context: Context!,
    clock: Clock!,
    capturingAudioSink: CapturingAudioSink!
)

Creates an instance.

Public functions

Array<Renderer!>!
createRenderers(
    eventHandler: Handler!,
    videoRendererEventListener: VideoRendererEventListener!,
    audioRendererEventListener: AudioRendererEventListener!,
    textRendererOutput: TextOutput!,
    metadataRendererOutput: MetadataOutput!
)

Builds the Renderer instances for an ExoPlayer.

Unit
dump(dumper: Dumper!)

Dumps the fields of the object using the dumper.

CapturingRenderersFactory!

Sets the factory for Renderer instances that handle TRACK_TYPE_TEXT tracks.

Protected functions

MediaCodecVideoRenderer!
createMediaCodecVideoRenderer(
    eventHandler: Handler!,
    videoRendererEventListener: VideoRendererEventListener!
)

Returns new instance of a specialized MediaCodecVideoRenderer that will not drop or skip buffers due to slow processing.

MediaCodecAdapter.Factory!

Returns the CapturingMediaCodecAdapter.Factory as a MediaCodecAdapter.Factory.

Inherited functions

From androidx.media3.exoplayer.RenderersFactory
Renderer?
createSecondaryRenderer(
    renderer: Renderer!,
    eventHandler: Handler!,
    videoRendererEventListener: VideoRendererEventListener!,
    audioRendererEventListener: AudioRendererEventListener!,
    textRendererOutput: TextOutput!,
    metadataRendererOutput: MetadataOutput!
)

Provides a secondary Renderer instance for an ExoPlayer to use for pre-warming.

Public constructors

CapturingRenderersFactory

CapturingRenderersFactory(context: Context!, clock: Clock!)

Creates an instance.

Parameters
context: Context!

The Context.

clock: Clock!

The Clock.

CapturingRenderersFactory

CapturingRenderersFactory(
    context: Context!,
    clock: Clock!,
    capturingAudioSink: CapturingAudioSink!
)

Creates an instance.

Parameters
context: Context!

The Context.

clock: Clock!

The Clock.

capturingAudioSink: CapturingAudioSink!

The audio sink to use for capturing audio output.

Public functions

createRenderers

fun createRenderers(
    eventHandler: Handler!,
    videoRendererEventListener: VideoRendererEventListener!,
    audioRendererEventListener: AudioRendererEventListener!,
    textRendererOutput: TextOutput!,
    metadataRendererOutput: MetadataOutput!
): Array<Renderer!>!

Builds the Renderer instances for an ExoPlayer.

Parameters
eventHandler: Handler!

A handler to use when invoking event listeners and outputs.

videoRendererEventListener: VideoRendererEventListener!

An event listener for video renderers.

audioRendererEventListener: AudioRendererEventListener!

An event listener for audio renderers.

textRendererOutput: TextOutput!

An output for text renderers.

metadataRendererOutput: MetadataOutput!

An output for metadata renderers.

Returns
Array<Renderer!>!

The instances.

dump

fun dump(dumper: Dumper!): Unit

Dumps the fields of the object using the dumper.

Parameters
dumper: Dumper!

The Dumper to be used to dump fields.

setTextRendererFactory

@CanIgnoreReturnValue
fun setTextRendererFactory(
    textRendererFactory: CapturingRenderersFactory.TextRendererFactory!
): CapturingRenderersFactory!

Sets the factory for Renderer instances that handle TRACK_TYPE_TEXT tracks.

Returns
CapturingRenderersFactory!

This factory, for convenience.

Protected functions

createMediaCodecVideoRenderer

protected fun createMediaCodecVideoRenderer(
    eventHandler: Handler!,
    videoRendererEventListener: VideoRendererEventListener!
): MediaCodecVideoRenderer!

Returns new instance of a specialized MediaCodecVideoRenderer that will not drop or skip buffers due to slow processing.

Parameters
eventHandler: Handler!

A handler to use when invoking event listeners and outputs.

videoRendererEventListener: VideoRendererEventListener!

An event listener for video renderers.

Returns
MediaCodecVideoRenderer!

a new instance of a specialized MediaCodecVideoRenderer.

Protected properties

context

protected val context: Context!

imageDecoderFactory

protected var imageDecoderFactory: ImageDecoder.Factory!