public final class

DefaultDataSourceFactory

extends java.lang.Object

implements DataSource.Factory

 java.lang.Object

↳androidx.media3.datasource.DefaultDataSourceFactory

Gradle dependencies

compile group: 'androidx.media3', name: 'media3-datasource', version: '1.5.0-alpha01'

  • groupId: androidx.media3
  • artifactId: media3-datasource
  • version: 1.5.0-alpha01

Artifact androidx.media3:media3-datasource:1.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Summary

Constructors
publicDefaultDataSourceFactory(Context context)

Creates an instance.

publicDefaultDataSourceFactory(Context context, DataSource.Factory baseDataSourceFactory)

Creates an instance.

publicDefaultDataSourceFactory(Context context, java.lang.String userAgent)

Creates an instance.

publicDefaultDataSourceFactory(Context context, java.lang.String userAgent, TransferListener listener)

Creates an instance.

publicDefaultDataSourceFactory(Context context, TransferListener listener, DataSource.Factory baseDataSourceFactory)

Creates an instance.

Methods
public DefaultDataSourcecreateDataSource()

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public DefaultDataSourceFactory(Context context)

Creates an instance.

Parameters:

context: A context.

public DefaultDataSourceFactory(Context context, java.lang.String userAgent)

Creates an instance.

Parameters:

context: A context.
userAgent: The user agent that will be used when requesting remote data, or null to use the default user agent of the underlying platform.

public DefaultDataSourceFactory(Context context, java.lang.String userAgent, TransferListener listener)

Creates an instance.

Parameters:

context: A context.
userAgent: The user agent that will be used when requesting remote data, or null to use the default user agent of the underlying platform.
listener: An optional listener.

public DefaultDataSourceFactory(Context context, DataSource.Factory baseDataSourceFactory)

Creates an instance.

Parameters:

context: A context.
baseDataSourceFactory: A DataSource.Factory to be used to create a base DataSource for DefaultDataSource.

See also: DefaultDataSource.DefaultDataSource(Context, DataSource)

public DefaultDataSourceFactory(Context context, TransferListener listener, DataSource.Factory baseDataSourceFactory)

Creates an instance.

Parameters:

context: A context.
listener: An optional listener.
baseDataSourceFactory: A DataSource.Factory to be used to create a base DataSource for DefaultDataSource.

See also: DefaultDataSource.DefaultDataSource(Context, DataSource)

Methods

public DefaultDataSource createDataSource()

Source

/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package androidx.media3.datasource;

import android.content.Context;
import androidx.annotation.Nullable;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.datasource.DataSource.Factory;

/**
 * @deprecated Use {@link DefaultDataSource.Factory} instead.
 */
@UnstableApi
@Deprecated
public final class DefaultDataSourceFactory implements Factory {

  private final Context context;
  @Nullable private final TransferListener listener;
  private final DataSource.Factory baseDataSourceFactory;

  /**
   * Creates an instance.
   *
   * @param context A context.
   */
  public DefaultDataSourceFactory(Context context) {
    this(context, /* userAgent= */ (String) null, /* listener= */ null);
  }

  /**
   * Creates an instance.
   *
   * @param context A context.
   * @param userAgent The user agent that will be used when requesting remote data, or {@code null}
   *     to use the default user agent of the underlying platform.
   */
  public DefaultDataSourceFactory(Context context, @Nullable String userAgent) {
    this(context, userAgent, /* listener= */ null);
  }

  /**
   * Creates an instance.
   *
   * @param context A context.
   * @param userAgent The user agent that will be used when requesting remote data, or {@code null}
   *     to use the default user agent of the underlying platform.
   * @param listener An optional listener.
   */
  public DefaultDataSourceFactory(
      Context context, @Nullable String userAgent, @Nullable TransferListener listener) {
    this(context, listener, new DefaultHttpDataSource.Factory().setUserAgent(userAgent));
  }

  /**
   * Creates an instance.
   *
   * @param context A context.
   * @param baseDataSourceFactory A {@link Factory} to be used to create a base {@link DataSource}
   *     for {@link DefaultDataSource}.
   * @see DefaultDataSource#DefaultDataSource(Context, DataSource)
   */
  public DefaultDataSourceFactory(Context context, DataSource.Factory baseDataSourceFactory) {
    this(context, /* listener= */ null, baseDataSourceFactory);
  }

  /**
   * Creates an instance.
   *
   * @param context A context.
   * @param listener An optional listener.
   * @param baseDataSourceFactory A {@link Factory} to be used to create a base {@link DataSource}
   *     for {@link DefaultDataSource}.
   * @see DefaultDataSource#DefaultDataSource(Context, DataSource)
   */
  public DefaultDataSourceFactory(
      Context context,
      @Nullable TransferListener listener,
      DataSource.Factory baseDataSourceFactory) {
    this.context = context.getApplicationContext();
    this.listener = listener;
    this.baseDataSourceFactory = baseDataSourceFactory;
  }

  @Override
  public DefaultDataSource createDataSource() {
    DefaultDataSource dataSource =
        new DefaultDataSource(context, baseDataSourceFactory.createDataSource());
    if (listener != null) {
      dataSource.addTransferListener(listener);
    }
    return dataSource;
  }
}