Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
891961d5
authored
Dec 06, 2018
by
aquilescanta
Committed by
Andrew Lewis
Dec 10, 2018
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Revert usage of MediaItems for Cast demo sample list
PiperOrigin-RevId: 224308973
parent
5776bed1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
60 additions
and
43 deletions
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DefaultReceiverPlayerManager.java
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/MainActivity.java
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DefaultReceiverPlayerManager.java
View file @
891961d5
...
...
@@ -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
;
}
}
...
...
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java
View file @
891961d5
...
...
@@ -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
(
"https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/"
+
"hls/TearsOfSteel.m3u8"
)
.
buildAndClear
());
new
Sample
(
"https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/"
+
"hls/TearsOfSteel.m3u8"
,
"Tears of Steel (HLS)"
,
MIME_TYPE_HLS
));
samples
.
add
(
sampleBuilder
.
setTitle
(
"HLS Basic (TS)"
)
.
setMimeType
(
MIME_TYPE_HLS
)
.
setMedia
(
"https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3"
+
"/bipbop_4x3_variant.m3u8"
)
.
buildAndClear
());
new
Sample
(
"https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_4x3"
+
"/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
);
}
...
...
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/MainActivity.java
View file @
891961d5
...
...
@@ -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
;
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment