mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Update HttpEngineDataSource to require at least S extension 7.
This earlier version supports [HttpEngine](https://developer.android.com/reference/android/net/http/HttpEngine) and thus this change allows more devices to use HttpEngine. This fixes Issue: androidx/media#1262, which suggests to do this. PiperOrigin-RevId: 650224711
This commit is contained in:
parent
6e18cb0053
commit
91633e6ae3
@ -24,6 +24,10 @@
|
|||||||
* Extractors:
|
* Extractors:
|
||||||
* Allow `Mp4Extractor` to identify H264 samples that are not used as
|
* Allow `Mp4Extractor` to identify H264 samples that are not used as
|
||||||
reference by subsequent samples.
|
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:
|
||||||
|
@ -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