Revert usage of MediaItems for Cast demo sample list
PiperOrigin-RevId: 224308973
This commit is contained in:
parent
5776bed190
commit
891961d5e1
@ -268,7 +268,7 @@ import java.util.ArrayList;
|
||||
public void onTimelineChanged(
|
||||
Timeline timeline, @Nullable Object manifest, @TimelineChangeReason int reason) {
|
||||
updateCurrentItemIndex();
|
||||
if (timeline.isEmpty()) {
|
||||
if (currentPlayer == castPlayer && timeline.isEmpty()) {
|
||||
castMediaQueueCreationPending = true;
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,6 @@
|
||||
*/
|
||||
package com.google.android.exoplayer2.castdemo;
|
||||
|
||||
import com.google.android.exoplayer2.ext.cast.MediaItem;
|
||||
import com.google.android.exoplayer2.util.MimeTypes;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@ -24,50 +23,64 @@ import java.util.List;
|
||||
/** Utility methods and constants for the Cast demo application. */
|
||||
/* package */ final class DemoUtil {
|
||||
|
||||
/** Represents a media sample. */
|
||||
public static final class Sample {
|
||||
|
||||
/** The uri of the media content. */
|
||||
public final String uri;
|
||||
/** The name of the sample. */
|
||||
public final String name;
|
||||
/** The mime type of the sample media content. */
|
||||
public final String mimeType;
|
||||
|
||||
/**
|
||||
* @param uri See {@link #uri}.
|
||||
* @param name See {@link #name}.
|
||||
* @param mimeType See {@link #mimeType}.
|
||||
*/
|
||||
public Sample(String uri, String name, String mimeType) {
|
||||
this.uri = uri;
|
||||
this.name = name;
|
||||
this.mimeType = mimeType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
public static final String MIME_TYPE_DASH = MimeTypes.APPLICATION_MPD;
|
||||
public static final String MIME_TYPE_HLS = MimeTypes.APPLICATION_M3U8;
|
||||
public static final String MIME_TYPE_SS = MimeTypes.APPLICATION_SS;
|
||||
public static final String MIME_TYPE_VIDEO_MP4 = MimeTypes.VIDEO_MP4;
|
||||
|
||||
/** The list of samples available in the cast demo app. */
|
||||
public static final List<MediaItem> SAMPLES;
|
||||
public static final List<Sample> SAMPLES;
|
||||
|
||||
static {
|
||||
// App samples.
|
||||
ArrayList<MediaItem> samples = new ArrayList<>();
|
||||
MediaItem.Builder sampleBuilder = new MediaItem.Builder();
|
||||
ArrayList<Sample> samples = new ArrayList<>();
|
||||
|
||||
samples.add(
|
||||
sampleBuilder
|
||||
.setTitle("DASH (clear,MP4,H264)")
|
||||
.setMimeType(MIME_TYPE_DASH)
|
||||
.setMedia("https://storage.googleapis.com/wvmedia/clear/h264/tears/tears.mpd")
|
||||
.buildAndClear());
|
||||
|
||||
new Sample(
|
||||
"https://storage.googleapis.com/wvmedia/clear/h264/tears/tears.mpd",
|
||||
"DASH (clear,MP4,H264)",
|
||||
MIME_TYPE_DASH));
|
||||
samples.add(
|
||||
sampleBuilder
|
||||
.setTitle("Tears of Steel (HLS)")
|
||||
.setMimeType(MIME_TYPE_HLS)
|
||||
.setMedia(
|
||||
new Sample(
|
||||
"https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/"
|
||||
+ "hls/TearsOfSteel.m3u8")
|
||||
.buildAndClear());
|
||||
|
||||
+ "hls/TearsOfSteel.m3u8",
|
||||
"Tears of Steel (HLS)",
|
||||
MIME_TYPE_HLS));
|
||||
samples.add(
|
||||
sampleBuilder
|
||||
.setTitle("HLS Basic (TS)")
|
||||
.setMimeType(MIME_TYPE_HLS)
|
||||
.setMedia(
|
||||
new Sample(
|
||||
"https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3"
|
||||
+ "/bipbop_4x3_variant.m3u8")
|
||||
.buildAndClear());
|
||||
|
||||
+ "/bipbop_4x3_variant.m3u8",
|
||||
"HLS Basic (TS)",
|
||||
MIME_TYPE_HLS));
|
||||
samples.add(
|
||||
sampleBuilder
|
||||
.setTitle("Dizzy (MP4)")
|
||||
.setMimeType(MIME_TYPE_VIDEO_MP4)
|
||||
.setMedia("https://html5demos.com/assets/dizzy.mp4")
|
||||
.buildAndClear());
|
||||
new Sample("https://html5demos.com/assets/dizzy.mp4", "Dizzy (MP4)", MIME_TYPE_VIDEO_MP4));
|
||||
SAMPLES = Collections.unmodifiableList(samples);
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,6 @@ package com.google.android.exoplayer2.castdemo;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.graphics.ColorUtils;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
@ -50,6 +49,8 @@ import com.google.android.gms.cast.framework.CastContext;
|
||||
public class MainActivity extends AppCompatActivity
|
||||
implements OnClickListener, PlayerManager.QueuePositionListener {
|
||||
|
||||
private final MediaItem.Builder mediaItemBuilder;
|
||||
|
||||
private PlayerView localPlayerView;
|
||||
private PlayerControlView castControlView;
|
||||
private PlayerManager playerManager;
|
||||
@ -57,6 +58,10 @@ public class MainActivity extends AppCompatActivity
|
||||
private MediaQueueListAdapter mediaQueueListAdapter;
|
||||
private CastContext castContext;
|
||||
|
||||
public MainActivity() {
|
||||
mediaItemBuilder = new MediaItem.Builder();
|
||||
}
|
||||
|
||||
// Activity lifecycle methods.
|
||||
|
||||
@Override
|
||||
@ -154,7 +159,14 @@ public class MainActivity extends AppCompatActivity
|
||||
sampleList.setAdapter(new SampleListAdapter(this));
|
||||
sampleList.setOnItemClickListener(
|
||||
(parent, view, position, id) -> {
|
||||
playerManager.addItem(DemoUtil.SAMPLES.get(position));
|
||||
DemoUtil.Sample sample = DemoUtil.SAMPLES.get(position);
|
||||
playerManager.addItem(
|
||||
mediaItemBuilder
|
||||
.clear()
|
||||
.setMedia(sample.uri)
|
||||
.setTitle(sample.name)
|
||||
.setMimeType(sample.mimeType)
|
||||
.build());
|
||||
mediaQueueListAdapter.notifyItemInserted(playerManager.getMediaQueueSize() - 1);
|
||||
});
|
||||
return dialogList;
|
||||
@ -254,19 +266,11 @@ public class MainActivity extends AppCompatActivity
|
||||
|
||||
}
|
||||
|
||||
private static final class SampleListAdapter extends ArrayAdapter<MediaItem> {
|
||||
private static final class SampleListAdapter extends ArrayAdapter<DemoUtil.Sample> {
|
||||
|
||||
public SampleListAdapter(Context context) {
|
||||
super(context, android.R.layout.simple_list_item_1, DemoUtil.SAMPLES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, @Nullable View convertView, ViewGroup parent) {
|
||||
TextView view = (TextView) super.getView(position, convertView, parent);
|
||||
MediaItem sample = DemoUtil.SAMPLES.get(position);
|
||||
view.setText(sample.title);
|
||||
return view;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user