DefaultMediaCodecAdapterFactory


@UnstableApi
public final class DefaultMediaCodecAdapterFactory implements MediaCodecAdapter.Factory


The default MediaCodecAdapter.Factory.

By default, this factory createsAsynchronousMediaCodecAdapter instances on devices with API level >= 31 (Android 12+). For devices with older API versions, the default behavior is to create SynchronousMediaCodecAdapter instances. The factory offers APIs to force the creation of AsynchronousMediaCodecAdapter or SynchronousMediaCodecAdapter instances.

Summary

Public constructors

This method is deprecated.

Use DefaultMediaCodecAdapterFactory instead.

Creates the default media codec adapter factory.

DefaultMediaCodecAdapterFactory(
    Context context,
    @Nullable Supplier<HandlerThread> callbackThreadSupplier,
    @Nullable Supplier<HandlerThread> queueingThreadSupplier
)

Creates the default media codec adapter factory.

Inherited Constants

From androidx.media3.exoplayer.mediacodec.MediaCodecAdapter.Factory
static final MediaCodecAdapter.Factory

This field is deprecated.

Use getDefault instead.

Inherited methods

From androidx.media3.exoplayer.mediacodec.MediaCodecAdapter.Factory
static MediaCodecAdapter.Factory

Returns the default factory that should be used in most cases.

Public constructors

DefaultMediaCodecAdapterFactory

public DefaultMediaCodecAdapterFactory()

DefaultMediaCodecAdapterFactory

public DefaultMediaCodecAdapterFactory(Context context)

Creates the default media codec adapter factory.

Parameters
Context context

A Context.

DefaultMediaCodecAdapterFactory

public DefaultMediaCodecAdapterFactory(
    Context context,
    @Nullable Supplier<HandlerThread> callbackThreadSupplier,
    @Nullable Supplier<HandlerThread> queueingThreadSupplier
)

Creates the default media codec adapter factory.

Parameters
Context context

A Context.

@Nullable Supplier<HandlerThread> callbackThreadSupplier

A supplier of HandlerThread used for MediaCodec callbacks invoked when buffers are available.

@Nullable Supplier<HandlerThread> queueingThreadSupplier

A supplier of HandlerThread to use for queueing buffers.

Public methods

createAdapter

public MediaCodecAdapter createAdapter(MediaCodecAdapter.Configuration configuration)

Creates a MediaCodecAdapter instance.

forceDisableAsynchronous

@CanIgnoreReturnValue
public DefaultMediaCodecAdapterFactory forceDisableAsynchronous()

Forces the factory to always create SynchronousMediaCodecAdapter instances.

Returns
DefaultMediaCodecAdapterFactory

This factory, for convenience.

forceEnableAsynchronous

@CanIgnoreReturnValue
public DefaultMediaCodecAdapterFactory forceEnableAsynchronous()

Forces this factory to always create AsynchronousMediaCodecAdapter instances.

Returns
DefaultMediaCodecAdapterFactory

This factory, for convenience.

setAsyncCryptoFlagEnabled

@CanIgnoreReturnValue
public DefaultMediaCodecAdapterFactory setAsyncCryptoFlagEnabled(boolean enableAsyncCryptoFlag)

Sets whether to enable CONFIGURE_FLAG_USE_CRYPTO_ASYNC on API 36 and above for AsynchronousMediaCodecAdapter instances. The default is true.

Returns
DefaultMediaCodecAdapterFactory

This factory, for convenience.