mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
parent
60359c16da
commit
00d1e70a34
@ -11,6 +11,15 @@
|
|||||||
* Add override for `SimpleBasePlayer.State.Builder.setPlaylist()` to
|
* Add override for `SimpleBasePlayer.State.Builder.setPlaylist()` to
|
||||||
directly specify a `Timeline` and current `Tracks` and `Metadata`
|
directly specify a `Timeline` and current `Tracks` and `Metadata`
|
||||||
instead of building a playlist structure.
|
instead of building a playlist structure.
|
||||||
|
* Upgrade `androidx.annotation:annotation` dependency to `1.6.0`. This may
|
||||||
|
cause `duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations`
|
||||||
|
and similar errors for non-Kotlin apps that also depend on other libs
|
||||||
|
like `androidx.appcompat:appcompat`. This is due to
|
||||||
|
[incomplete version constraints in the Kotlin standard library](https://youtrack.jetbrains.com/issue/KT-55297).
|
||||||
|
Apps can resolve this by upgrading their
|
||||||
|
[Kotlin Gradle Plugin](https://kotlinlang.org/docs/gradle-configure-project.html#apply-the-plugin)
|
||||||
|
to at least version `1.9.20` or using the workaround described in
|
||||||
|
https://issuetracker.google.com/278545487.
|
||||||
* ExoPlayer:
|
* ExoPlayer:
|
||||||
* `MediaCodecRenderer.onProcessedStreamChange()` can now be called for
|
* `MediaCodecRenderer.onProcessedStreamChange()` can now be called for
|
||||||
every media item. Previously it was not called for the first one. Use
|
every media item. Previously it was not called for the first one. Use
|
||||||
@ -28,6 +37,10 @@
|
|||||||
* Extractors:
|
* Extractors:
|
||||||
* Allow `Mp4Extractor` and `FragmentedMp4Extractor` to identify H264
|
* Allow `Mp4Extractor` and `FragmentedMp4Extractor` to identify H264
|
||||||
samples that are not used as reference by subsequent samples.
|
samples that are not used as reference by subsequent samples.
|
||||||
|
* DataSource:
|
||||||
|
* Update `HttpEngineDataSource` to allow use starting at version S
|
||||||
|
extension 7 instead of API level 34
|
||||||
|
([#1262](https://github.com/androidx/media/issues/1262)).
|
||||||
* Audio:
|
* Audio:
|
||||||
* Video:
|
* Video:
|
||||||
* Text:
|
* Text:
|
||||||
|
@ -19,7 +19,7 @@ buildscript {
|
|||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:8.3.2'
|
classpath 'com.android.tools.build:gradle:8.3.2'
|
||||||
classpath 'com.google.android.gms:strict-version-matcher-plugin:1.2.4'
|
classpath 'com.google.android.gms:strict-version-matcher-plugin:1.2.4'
|
||||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0'
|
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
allprojects {
|
allprojects {
|
||||||
|
@ -38,8 +38,7 @@ project.ext {
|
|||||||
errorProneVersion = '2.18.0'
|
errorProneVersion = '2.18.0'
|
||||||
jsr305Version = '3.0.2'
|
jsr305Version = '3.0.2'
|
||||||
kotlinAnnotationsVersion = '1.9.0'
|
kotlinAnnotationsVersion = '1.9.0'
|
||||||
// Updating this to 1.4.0+ will import Kotlin stdlib [internal ref: b/277891049].
|
androidxAnnotationVersion = '1.6.0'
|
||||||
androidxAnnotationVersion = '1.3.0'
|
|
||||||
androidxAnnotationExperimentalVersion = '1.3.1'
|
androidxAnnotationExperimentalVersion = '1.3.1'
|
||||||
androidxAppCompatVersion = '1.6.1'
|
androidxAppCompatVersion = '1.6.1'
|
||||||
androidxCollectionVersion = '1.2.0'
|
androidxCollectionVersion = '1.2.0'
|
||||||
|
@ -18,6 +18,7 @@ package androidx.media3.demo.main;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.http.HttpEngine;
|
import android.net.http.HttpEngine;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.os.ext.SdkExtensions;
|
||||||
import androidx.annotation.OptIn;
|
import androidx.annotation.OptIn;
|
||||||
import androidx.media3.database.DatabaseProvider;
|
import androidx.media3.database.DatabaseProvider;
|
||||||
import androidx.media3.database.StandaloneDatabaseProvider;
|
import androidx.media3.database.StandaloneDatabaseProvider;
|
||||||
@ -106,7 +107,8 @@ public final class DemoUtil {
|
|||||||
return httpDataSourceFactory;
|
return httpDataSourceFactory;
|
||||||
}
|
}
|
||||||
context = context.getApplicationContext();
|
context = context.getApplicationContext();
|
||||||
if (Build.VERSION.SDK_INT >= 34) {
|
if (Build.VERSION.SDK_INT >= 30
|
||||||
|
&& SdkExtensions.getExtensionVersion(Build.VERSION_CODES.S) >= 7) {
|
||||||
HttpEngine httpEngine = new HttpEngine.Builder(context).build();
|
HttpEngine httpEngine = new HttpEngine.Builder(context).build();
|
||||||
httpDataSourceFactory =
|
httpDataSourceFactory =
|
||||||
new HttpEngineDataSource.Factory(httpEngine, Executors.newSingleThreadExecutor());
|
new HttpEngineDataSource.Factory(httpEngine, Executors.newSingleThreadExecutor());
|
||||||
|
@ -19,12 +19,13 @@ import static java.lang.Math.min;
|
|||||||
|
|
||||||
import android.net.http.UploadDataProvider;
|
import android.net.http.UploadDataProvider;
|
||||||
import android.net.http.UploadDataSink;
|
import android.net.http.UploadDataSink;
|
||||||
import androidx.annotation.RequiresApi;
|
import android.os.Build;
|
||||||
|
import androidx.annotation.RequiresExtension;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
/** A {@link UploadDataProvider} implementation that provides data from a {@code byte[]}. */
|
/** A {@link UploadDataProvider} implementation that provides data from a {@code byte[]}. */
|
||||||
@RequiresApi(34)
|
@RequiresExtension(extension = Build.VERSION_CODES.S, version = 7)
|
||||||
/* package */ final class ByteArrayUploadDataProvider extends UploadDataProvider {
|
/* package */ final class ByteArrayUploadDataProvider extends UploadDataProvider {
|
||||||
|
|
||||||
private final byte[] data;
|
private final byte[] data;
|
||||||
|
@ -26,9 +26,10 @@ import android.net.http.NetworkException;
|
|||||||
import android.net.http.UrlRequest;
|
import android.net.http.UrlRequest;
|
||||||
import android.net.http.UrlRequest.Status;
|
import android.net.http.UrlRequest.Status;
|
||||||
import android.net.http.UrlResponseInfo;
|
import android.net.http.UrlResponseInfo;
|
||||||
|
import android.os.Build;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.RequiresApi;
|
import androidx.annotation.RequiresExtension;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.PlaybackException;
|
import androidx.media3.common.PlaybackException;
|
||||||
@ -65,7 +66,7 @@ import java.util.concurrent.Executor;
|
|||||||
* priority) the {@code dataSpec}, {@link #setRequestProperty} and the default parameters used to
|
* priority) the {@code dataSpec}, {@link #setRequestProperty} and the default parameters used to
|
||||||
* construct the instance.
|
* construct the instance.
|
||||||
*/
|
*/
|
||||||
@RequiresApi(34)
|
@RequiresExtension(extension = Build.VERSION_CODES.S, version = 7)
|
||||||
@UnstableApi
|
@UnstableApi
|
||||||
public final class HttpEngineDataSource extends BaseDataSource implements HttpDataSource {
|
public final class HttpEngineDataSource extends BaseDataSource implements HttpDataSource {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user