KtorDataSource.Factory


public final class KtorDataSource.Factory implements HttpDataSource.Factory


androidx.media3.datasource.DataSource.Factory for KtorDataSource instances.

Summary

Public constructors

Factory(
    @NonNull HttpClient httpClient,
    String userAgent,
    Predicate<@NonNull String> contentTypePredicate,
    TransferListener transferListener
)

Public methods

@NonNull KtorDataSource

Creates a DataSource instance.

@NonNull KtorDataSource.Factory

Sets the default request headers for HttpDataSource instances created by the factory.

Public constructors

Factory

public Factory(
    @NonNull HttpClient httpClient,
    String userAgent,
    Predicate<@NonNull String> contentTypePredicate,
    TransferListener transferListener
)
Parameters
@NonNull HttpClient httpClient

A HttpClient for use by the sources created by the factory.

String userAgent

The user agent that will be used for requests. The default is null, which causes the default user agent of the underlying HttpClient to be used.

Predicate<@NonNull String> contentTypePredicate

An optional content type Predicate. If a content type is rejected by the predicate then a HttpDataSource.InvalidContentTypeException is thrown from KtorDataSource.open.

TransferListener transferListener

An optional transfer listener. See androidx.media3.datasource.DataSource.addTransferListener.

Public methods

createDataSource

public @NonNull KtorDataSource createDataSource()

Creates a DataSource instance.

setDefaultRequestProperties

@CanIgnoreReturnValue
public @NonNull KtorDataSource.Factory setDefaultRequestProperties(
    @NonNull Map<@NonNull String, @NonNull String> defaultRequestProperties
)

Sets the default request headers for HttpDataSource instances created by the factory.

The new request properties will be used for future requests made by HttpDataSources created by the factory, including instances that have already been created. Modifying the defaultRequestProperties map after a call to this method will have no effect, and so it's necessary to call this method again each time the request properties need to be updated.

Parameters
@NonNull Map<@NonNull String, @NonNull String> defaultRequestProperties

The default request properties.

Returns
@NonNull KtorDataSource.Factory

This factory.