mirror of
https://github.com/samsonjs/media.git
synced 2026-03-27 09:45:47 +00:00
Remove references to Downloads from IntentUtil
PiperOrigin-RevId: 324599130
This commit is contained in:
parent
5c879ac8f8
commit
33fe3a47e3
2 changed files with 42 additions and 25 deletions
|
|
@ -23,7 +23,6 @@ import android.net.Uri;
|
|||
import androidx.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.MediaItem;
|
||||
import com.google.android.exoplayer2.offline.DownloadRequest;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import com.google.android.exoplayer2.util.MimeTypes;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
|
|
@ -62,8 +61,8 @@ public class IntentUtil {
|
|||
public static final String URI_EXTRA = "uri";
|
||||
public static final String IS_LIVE_EXTRA = "is_live";
|
||||
public static final String MIME_TYPE_EXTRA = "mime_type";
|
||||
public static final String START_POSITION_MS_EXTRA = "start_position_ms";
|
||||
public static final String END_POSITION_MS_EXTRA = "end_position_ms";
|
||||
public static final String CLIP_START_POSITION_MS_EXTRA = "clip_start_position_ms";
|
||||
public static final String CLIP_END_POSITION_MS_EXTRA = "clip_end_position_ms";
|
||||
// For backwards compatibility only.
|
||||
public static final String EXTENSION_EXTRA = "extension";
|
||||
|
||||
|
|
@ -83,24 +82,18 @@ public class IntentUtil {
|
|||
public static final String PREFER_EXTENSION_DECODERS_EXTRA = "prefer_extension_decoders";
|
||||
|
||||
/** Creates a list of {@link MediaItem media items} from an {@link Intent}. */
|
||||
public static List<MediaItem> createMediaItemsFromIntent(
|
||||
Intent intent, DownloadTracker downloadTracker) {
|
||||
public static List<MediaItem> createMediaItemsFromIntent(Intent intent) {
|
||||
List<MediaItem> mediaItems = new ArrayList<>();
|
||||
if (ACTION_VIEW_LIST.equals(intent.getAction())) {
|
||||
int index = 0;
|
||||
while (intent.hasExtra(URI_EXTRA + "_" + index)) {
|
||||
String extrasSuffix = "_" + index;
|
||||
Uri uri = Uri.parse(intent.getStringExtra(URI_EXTRA + extrasSuffix));
|
||||
mediaItems.add(
|
||||
createMediaItemFromIntent(
|
||||
uri, intent, extrasSuffix, downloadTracker.getDownloadRequest(uri)));
|
||||
Uri uri = Uri.parse(intent.getStringExtra(URI_EXTRA + "_" + index));
|
||||
mediaItems.add(createMediaItemFromIntent(uri, intent, /* extrasKeySuffix= */ "_" + index));
|
||||
index++;
|
||||
}
|
||||
} else {
|
||||
Uri uri = intent.getData();
|
||||
mediaItems.add(
|
||||
createMediaItemFromIntent(
|
||||
uri, intent, /* extrasKeySuffix= */ "", downloadTracker.getDownloadRequest(uri)));
|
||||
mediaItems.add(createMediaItemFromIntent(uri, intent, /* extrasKeySuffix= */ ""));
|
||||
}
|
||||
return mediaItems;
|
||||
}
|
||||
|
|
@ -147,7 +140,7 @@ public class IntentUtil {
|
|||
}
|
||||
|
||||
private static MediaItem createMediaItemFromIntent(
|
||||
Uri uri, Intent intent, String extrasKeySuffix, @Nullable DownloadRequest downloadRequest) {
|
||||
Uri uri, Intent intent, String extrasKeySuffix) {
|
||||
String mimeType = intent.getStringExtra(MIME_TYPE_EXTRA + extrasKeySuffix);
|
||||
if (mimeType == null) {
|
||||
// Try to use extension for backwards compatibility.
|
||||
|
|
@ -157,15 +150,14 @@ public class IntentUtil {
|
|||
MediaItem.Builder builder =
|
||||
new MediaItem.Builder()
|
||||
.setUri(uri)
|
||||
.setStreamKeys(downloadRequest != null ? downloadRequest.streamKeys : null)
|
||||
.setCustomCacheKey(downloadRequest != null ? downloadRequest.customCacheKey : null)
|
||||
.setMimeType(mimeType)
|
||||
.setAdTagUri(intent.getStringExtra(AD_TAG_URI_EXTRA + extrasKeySuffix))
|
||||
.setSubtitles(createSubtitlesFromIntent(intent, extrasKeySuffix))
|
||||
.setClipStartPositionMs(
|
||||
intent.getLongExtra(START_POSITION_MS_EXTRA + extrasKeySuffix, 0))
|
||||
intent.getLongExtra(CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, 0))
|
||||
.setClipEndPositionMs(
|
||||
intent.getLongExtra(END_POSITION_MS_EXTRA + extrasKeySuffix, C.TIME_END_OF_SOURCE));
|
||||
intent.getLongExtra(
|
||||
CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, C.TIME_END_OF_SOURCE));
|
||||
|
||||
return populateDrmPropertiesFromIntent(builder, intent, extrasKeySuffix).build();
|
||||
}
|
||||
|
|
@ -294,10 +286,11 @@ public class IntentUtil {
|
|||
MediaItem.ClippingProperties clippingProperties, Intent intent, String extrasKeySuffix) {
|
||||
if (clippingProperties.startPositionMs != 0) {
|
||||
intent.putExtra(
|
||||
START_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.startPositionMs);
|
||||
CLIP_START_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.startPositionMs);
|
||||
}
|
||||
if (clippingProperties.endPositionMs != C.TIME_END_OF_SOURCE) {
|
||||
intent.putExtra(END_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.endPositionMs);
|
||||
intent.putExtra(
|
||||
CLIP_END_POSITION_MS_EXTRA + extrasKeySuffix, clippingProperties.endPositionMs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package com.google.android.exoplayer2.demo;
|
||||
|
||||
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.media.MediaDrm;
|
||||
|
|
@ -29,6 +31,7 @@ import android.widget.LinearLayout;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.ExoPlaybackException;
|
||||
|
|
@ -41,6 +44,7 @@ import com.google.android.exoplayer2.audio.AudioAttributes;
|
|||
import com.google.android.exoplayer2.ext.ima.ImaAdsLoader;
|
||||
import com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.DecoderInitializationException;
|
||||
import com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException;
|
||||
import com.google.android.exoplayer2.offline.DownloadRequest;
|
||||
import com.google.android.exoplayer2.source.BehindLiveWindowException;
|
||||
import com.google.android.exoplayer2.source.DefaultMediaSourceFactory;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
|
|
@ -52,13 +56,13 @@ import com.google.android.exoplayer2.ui.DebugTextViewHelper;
|
|||
import com.google.android.exoplayer2.ui.StyledPlayerControlView;
|
||||
import com.google.android.exoplayer2.ui.StyledPlayerView;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
||||
import com.google.android.exoplayer2.util.ErrorMessageProvider;
|
||||
import com.google.android.exoplayer2.util.EventLogger;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import java.net.CookieHandler;
|
||||
import java.net.CookieManager;
|
||||
import java.net.CookiePolicy;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -321,8 +325,7 @@ public class PlayerActivity extends AppCompatActivity
|
|||
}
|
||||
|
||||
List<MediaItem> mediaItems =
|
||||
IntentUtil.createMediaItemsFromIntent(
|
||||
intent, DemoUtil.getDownloadTracker(/* context= */ this));
|
||||
createMediaItems(intent, DemoUtil.getDownloadTracker(/* context= */ this));
|
||||
boolean hasAds = false;
|
||||
for (int i = 0; i < mediaItems.size(); i++) {
|
||||
MediaItem mediaItem = mediaItems.get(i);
|
||||
|
|
@ -337,7 +340,7 @@ public class PlayerActivity extends AppCompatActivity
|
|||
}
|
||||
|
||||
MediaItem.DrmConfiguration drmConfiguration =
|
||||
Assertions.checkNotNull(mediaItem.playbackProperties).drmConfiguration;
|
||||
checkNotNull(mediaItem.playbackProperties).drmConfiguration;
|
||||
if (drmConfiguration != null) {
|
||||
if (Util.SDK_INT < 18) {
|
||||
showToast(R.string.error_drm_unsupported_before_api_18);
|
||||
|
|
@ -541,7 +544,28 @@ public class PlayerActivity extends AppCompatActivity
|
|||
|
||||
@Override
|
||||
public AdsLoader.AdViewProvider getAdViewProvider() {
|
||||
return Assertions.checkNotNull(playerView);
|
||||
return checkNotNull(playerView);
|
||||
}
|
||||
}
|
||||
|
||||
private static List<MediaItem> createMediaItems(Intent intent, DownloadTracker downloadTracker) {
|
||||
List<MediaItem> mediaItems = new ArrayList<>();
|
||||
for (MediaItem item : IntentUtil.createMediaItemsFromIntent(intent)) {
|
||||
@Nullable
|
||||
DownloadRequest downloadRequest =
|
||||
downloadTracker.getDownloadRequest(checkNotNull(item.playbackProperties).uri);
|
||||
if (downloadRequest != null) {
|
||||
MediaItem mediaItem =
|
||||
item.buildUpon()
|
||||
.setStreamKeys(downloadRequest.streamKeys)
|
||||
.setCustomCacheKey(downloadRequest.customCacheKey)
|
||||
.setDrmKeySetId(downloadRequest.keySetId)
|
||||
.build();
|
||||
mediaItems.add(mediaItem);
|
||||
} else {
|
||||
mediaItems.add(item);
|
||||
}
|
||||
}
|
||||
return mediaItems;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue