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
b22783f8
authored
Apr 29, 2020
by
bachinger
Committed by
Oliver Woodman
May 01, 2020
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Rename sourceUri to uri
PiperOrigin-RevId: 308918151
parent
284b843d
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
168 additions
and
203 deletions
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverterTest.java
library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java
library/common/src/main/java/com/google/android/exoplayer2/util/Util.java
library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java
library/core/src/main/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.java
library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java
library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java
library/core/src/test/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactoryTest.java
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java
library/dash/src/test/java/com/google/android/exoplayer2/source/dash/DefaultMediaSourceFactoryTest.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java
library/hls/src/test/java/com/google/android/exoplayer2/source/hls/DefaultMediaSourceFactoryTest.java
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java
library/smoothstreaming/src/test/java/com/google/android/exoplayer2/source/smoothstreaming/DefaultMediaSourceFactoryTest.java
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java
View file @
b22783f8
...
@@ -41,19 +41,19 @@ import java.util.List;
...
@@ -41,19 +41,19 @@ import java.util.List;
// Clear content.
// Clear content.
samples
.
add
(
samples
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
"https://storage.googleapis.com/wvmedia/clear/h264/tears/tears.mpd"
)
.
setUri
(
"https://storage.googleapis.com/wvmedia/clear/h264/tears/tears.mpd"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Clear DASH: Tears"
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Clear DASH: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setMimeType
(
MIME_TYPE_DASH
)
.
build
());
.
build
());
samples
.
add
(
samples
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
"https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8"
)
.
setUri
(
"https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Clear HLS: Angel one"
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Clear HLS: Angel one"
).
build
())
.
setMimeType
(
MIME_TYPE_HLS
)
.
setMimeType
(
MIME_TYPE_HLS
)
.
build
());
.
build
());
samples
.
add
(
samples
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
"https://html5demos.com/assets/dizzy.mp4"
)
.
setUri
(
"https://html5demos.com/assets/dizzy.mp4"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Clear MP4: Dizzy"
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Clear MP4: Dizzy"
).
build
())
.
setMimeType
(
MIME_TYPE_VIDEO_MP4
)
.
setMimeType
(
MIME_TYPE_VIDEO_MP4
)
.
build
());
.
build
());
...
@@ -61,8 +61,7 @@ import java.util.List;
...
@@ -61,8 +61,7 @@ import java.util.List;
// DRM content.
// DRM content.
samples
.
add
(
samples
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setSourceUri
(
.
setUri
(
Uri
.
parse
(
"https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd"
))
Uri
.
parse
(
"https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd"
))
.
setMediaMetadata
(
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cenc: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cenc: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setMimeType
(
MIME_TYPE_DASH
)
...
@@ -71,8 +70,7 @@ import java.util.List;
...
@@ -71,8 +70,7 @@ import java.util.List;
.
build
());
.
build
());
samples
.
add
(
samples
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setSourceUri
(
.
setUri
(
"https://storage.googleapis.com/wvmedia/cbc1/h264/tears/tears_aes_cbc1.mpd"
)
"https://storage.googleapis.com/wvmedia/cbc1/h264/tears/tears_aes_cbc1.mpd"
)
.
setMediaMetadata
(
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbc1: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbc1: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setMimeType
(
MIME_TYPE_DASH
)
...
@@ -81,8 +79,7 @@ import java.util.List;
...
@@ -81,8 +79,7 @@ import java.util.List;
.
build
());
.
build
());
samples
.
add
(
samples
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setSourceUri
(
.
setUri
(
"https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd"
)
"https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd"
)
.
setMediaMetadata
(
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbcs: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbcs: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setMimeType
(
MIME_TYPE_DASH
)
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java
View file @
b22783f8
...
@@ -85,7 +85,7 @@ public class DownloadTracker {
...
@@ -85,7 +85,7 @@ public class DownloadTracker {
}
}
public
boolean
isDownloaded
(
MediaItem
mediaItem
)
{
public
boolean
isDownloaded
(
MediaItem
mediaItem
)
{
Download
download
=
downloads
.
get
(
checkNotNull
(
mediaItem
.
playbackProperties
).
sourceU
ri
);
Download
download
=
downloads
.
get
(
checkNotNull
(
mediaItem
.
playbackProperties
).
u
ri
);
return
download
!=
null
&&
download
.
state
!=
Download
.
STATE_FAILED
;
return
download
!=
null
&&
download
.
state
!=
Download
.
STATE_FAILED
;
}
}
...
@@ -96,7 +96,7 @@ public class DownloadTracker {
...
@@ -96,7 +96,7 @@ public class DownloadTracker {
public
void
toggleDownload
(
public
void
toggleDownload
(
FragmentManager
fragmentManager
,
MediaItem
mediaItem
,
RenderersFactory
renderersFactory
)
{
FragmentManager
fragmentManager
,
MediaItem
mediaItem
,
RenderersFactory
renderersFactory
)
{
Download
download
=
downloads
.
get
(
checkNotNull
(
mediaItem
.
playbackProperties
).
sourceU
ri
);
Download
download
=
downloads
.
get
(
checkNotNull
(
mediaItem
.
playbackProperties
).
u
ri
);
if
(
download
!=
null
)
{
if
(
download
!=
null
)
{
DownloadService
.
sendRemoveDownload
(
DownloadService
.
sendRemoveDownload
(
context
,
DemoDownloadService
.
class
,
download
.
request
.
id
,
/* foreground= */
false
);
context
,
DemoDownloadService
.
class
,
download
.
request
.
id
,
/* foreground= */
false
);
...
@@ -125,20 +125,19 @@ public class DownloadTracker {
...
@@ -125,20 +125,19 @@ public class DownloadTracker {
MediaItem
.
PlaybackProperties
playbackProperties
=
checkNotNull
(
mediaItem
.
playbackProperties
);
MediaItem
.
PlaybackProperties
playbackProperties
=
checkNotNull
(
mediaItem
.
playbackProperties
);
@C
.
ContentType
@C
.
ContentType
int
type
=
int
type
=
Util
.
inferContentTypeWithMimeType
(
Util
.
inferContentTypeWithMimeType
(
playbackProperties
.
uri
,
playbackProperties
.
mimeType
);
playbackProperties
.
sourceUri
,
playbackProperties
.
mimeType
);
switch
(
type
)
{
switch
(
type
)
{
case
C
.
TYPE_DASH
:
case
C
.
TYPE_DASH
:
return
DownloadHelper
.
forDash
(
return
DownloadHelper
.
forDash
(
context
,
playbackProperties
.
sourceU
ri
,
dataSourceFactory
,
renderersFactory
);
context
,
playbackProperties
.
u
ri
,
dataSourceFactory
,
renderersFactory
);
case
C
.
TYPE_SS
:
case
C
.
TYPE_SS
:
return
DownloadHelper
.
forSmoothStreaming
(
return
DownloadHelper
.
forSmoothStreaming
(
context
,
playbackProperties
.
sourceU
ri
,
dataSourceFactory
,
renderersFactory
);
context
,
playbackProperties
.
u
ri
,
dataSourceFactory
,
renderersFactory
);
case
C
.
TYPE_HLS
:
case
C
.
TYPE_HLS
:
return
DownloadHelper
.
forHls
(
return
DownloadHelper
.
forHls
(
context
,
playbackProperties
.
sourceU
ri
,
dataSourceFactory
,
renderersFactory
);
context
,
playbackProperties
.
u
ri
,
dataSourceFactory
,
renderersFactory
);
case
C
.
TYPE_OTHER
:
case
C
.
TYPE_OTHER
:
return
DownloadHelper
.
forProgressive
(
context
,
playbackProperties
.
sourceU
ri
);
return
DownloadHelper
.
forProgressive
(
context
,
playbackProperties
.
u
ri
);
default
:
default
:
throw
new
IllegalStateException
(
"Unsupported type: "
+
type
);
throw
new
IllegalStateException
(
"Unsupported type: "
+
type
);
}
}
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java
View file @
b22783f8
...
@@ -125,14 +125,14 @@ public class IntentUtil {
...
@@ -125,14 +125,14 @@ public class IntentUtil {
if
(
mediaItems
.
size
()
==
1
)
{
if
(
mediaItems
.
size
()
==
1
)
{
MediaItem
.
PlaybackProperties
playbackProperties
=
MediaItem
.
PlaybackProperties
playbackProperties
=
checkNotNull
(
mediaItems
.
get
(
0
).
playbackProperties
);
checkNotNull
(
mediaItems
.
get
(
0
).
playbackProperties
);
intent
.
setAction
(
IntentUtil
.
ACTION_VIEW
).
setData
(
playbackProperties
.
sourceU
ri
);
intent
.
setAction
(
IntentUtil
.
ACTION_VIEW
).
setData
(
playbackProperties
.
u
ri
);
addPlaybackPropertiesToIntent
(
playbackProperties
,
intent
,
/* extrasKeySuffix= */
""
);
addPlaybackPropertiesToIntent
(
playbackProperties
,
intent
,
/* extrasKeySuffix= */
""
);
}
else
{
}
else
{
intent
.
setAction
(
IntentUtil
.
ACTION_VIEW_LIST
);
intent
.
setAction
(
IntentUtil
.
ACTION_VIEW_LIST
);
for
(
int
i
=
0
;
i
<
mediaItems
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
mediaItems
.
size
();
i
++)
{
MediaItem
.
PlaybackProperties
playbackProperties
=
MediaItem
.
PlaybackProperties
playbackProperties
=
checkNotNull
(
mediaItems
.
get
(
i
).
playbackProperties
);
checkNotNull
(
mediaItems
.
get
(
i
).
playbackProperties
);
intent
.
putExtra
(
IntentUtil
.
URI_EXTRA
+
(
"_"
+
i
),
playbackProperties
.
sourceU
ri
.
toString
());
intent
.
putExtra
(
IntentUtil
.
URI_EXTRA
+
(
"_"
+
i
),
playbackProperties
.
u
ri
.
toString
());
addPlaybackPropertiesToIntent
(
playbackProperties
,
intent
,
/* extrasKeySuffix= */
"_"
+
i
);
addPlaybackPropertiesToIntent
(
playbackProperties
,
intent
,
/* extrasKeySuffix= */
"_"
+
i
);
}
}
}
}
...
@@ -165,7 +165,7 @@ public class IntentUtil {
...
@@ -165,7 +165,7 @@ public class IntentUtil {
}
}
MediaItem
.
Builder
builder
=
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
uri
)
.
setUri
(
uri
)
.
setStreamKeys
(
downloadRequest
!=
null
?
downloadRequest
.
streamKeys
:
null
)
.
setStreamKeys
(
downloadRequest
!=
null
?
downloadRequest
.
streamKeys
:
null
)
.
setCustomCacheKey
(
downloadRequest
!=
null
?
downloadRequest
.
customCacheKey
:
null
)
.
setCustomCacheKey
(
downloadRequest
!=
null
?
downloadRequest
.
customCacheKey
:
null
)
.
setMimeType
(
mimeType
)
.
setMimeType
(
mimeType
)
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
View file @
b22783f8
...
@@ -278,7 +278,7 @@ public class SampleChooserActivity extends AppCompatActivity
...
@@ -278,7 +278,7 @@ public class SampleChooserActivity extends AppCompatActivity
if
(
playbackProperties
.
adTagUri
!=
null
)
{
if
(
playbackProperties
.
adTagUri
!=
null
)
{
return
R
.
string
.
download_ads_unsupported
;
return
R
.
string
.
download_ads_unsupported
;
}
}
String
scheme
=
playbackProperties
.
sourceU
ri
.
getScheme
();
String
scheme
=
playbackProperties
.
u
ri
.
getScheme
();
if
(!(
"http"
.
equals
(
scheme
)
||
"https"
.
equals
(
scheme
)))
{
if
(!(
"http"
.
equals
(
scheme
)
||
"https"
.
equals
(
scheme
)))
{
return
R
.
string
.
download_scheme_unsupported
;
return
R
.
string
.
download_scheme_unsupported
;
}
}
...
@@ -457,7 +457,7 @@ public class SampleChooserActivity extends AppCompatActivity
...
@@ -457,7 +457,7 @@ public class SampleChooserActivity extends AppCompatActivity
return
new
PlaylistHolder
(
title
,
mediaItems
);
return
new
PlaylistHolder
(
title
,
mediaItems
);
}
else
{
}
else
{
mediaItem
mediaItem
.
set
Source
Uri
(
uri
)
.
setUri
(
uri
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
title
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
title
).
build
())
.
setMimeType
(
IntentUtil
.
inferAdaptiveStreamMimeType
(
uri
,
extension
))
.
setMimeType
(
IntentUtil
.
inferAdaptiveStreamMimeType
(
uri
,
extension
))
.
setTag
(
new
IntentUtil
.
Tag
(
isLive
,
sphericalStereoMode
));
.
setTag
(
new
IntentUtil
.
Tag
(
isLive
,
sphericalStereoMode
));
...
...
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverter.java
View file @
b22783f8
...
@@ -59,7 +59,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
...
@@ -59,7 +59,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
metadata
.
putString
(
MediaMetadata
.
KEY_TITLE
,
item
.
mediaMetadata
.
title
);
metadata
.
putString
(
MediaMetadata
.
KEY_TITLE
,
item
.
mediaMetadata
.
title
);
}
}
MediaInfo
mediaInfo
=
MediaInfo
mediaInfo
=
new
MediaInfo
.
Builder
(
item
.
playbackProperties
.
sourceU
ri
.
toString
())
new
MediaInfo
.
Builder
(
item
.
playbackProperties
.
u
ri
.
toString
())
.
setStreamType
(
MediaInfo
.
STREAM_TYPE_BUFFERED
)
.
setStreamType
(
MediaInfo
.
STREAM_TYPE_BUFFERED
)
.
setContentType
(
item
.
playbackProperties
.
mimeType
)
.
setContentType
(
item
.
playbackProperties
.
mimeType
)
.
setMetadata
(
metadata
)
.
setMetadata
(
metadata
)
...
@@ -74,7 +74,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
...
@@ -74,7 +74,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
try
{
try
{
JSONObject
mediaItemJson
=
customData
.
getJSONObject
(
KEY_MEDIA_ITEM
);
JSONObject
mediaItemJson
=
customData
.
getJSONObject
(
KEY_MEDIA_ITEM
);
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
builder
.
set
Source
Uri
(
Uri
.
parse
(
mediaItemJson
.
getString
(
KEY_URI
)));
builder
.
setUri
(
Uri
.
parse
(
mediaItemJson
.
getString
(
KEY_URI
)));
if
(
mediaItemJson
.
has
(
KEY_TITLE
))
{
if
(
mediaItemJson
.
has
(
KEY_TITLE
))
{
com
.
google
.
android
.
exoplayer2
.
MediaMetadata
mediaMetadata
=
com
.
google
.
android
.
exoplayer2
.
MediaMetadata
mediaMetadata
=
new
com
.
google
.
android
.
exoplayer2
.
MediaMetadata
.
Builder
()
new
com
.
google
.
android
.
exoplayer2
.
MediaMetadata
.
Builder
()
...
@@ -127,7 +127,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
...
@@ -127,7 +127,7 @@ public final class DefaultMediaItemConverter implements MediaItemConverter {
Assertions
.
checkNotNull
(
mediaItem
.
playbackProperties
);
Assertions
.
checkNotNull
(
mediaItem
.
playbackProperties
);
JSONObject
json
=
new
JSONObject
();
JSONObject
json
=
new
JSONObject
();
json
.
put
(
KEY_TITLE
,
mediaItem
.
mediaMetadata
.
title
);
json
.
put
(
KEY_TITLE
,
mediaItem
.
mediaMetadata
.
title
);
json
.
put
(
KEY_URI
,
mediaItem
.
playbackProperties
.
sourceU
ri
.
toString
());
json
.
put
(
KEY_URI
,
mediaItem
.
playbackProperties
.
u
ri
.
toString
());
json
.
put
(
KEY_MIME_TYPE
,
mediaItem
.
playbackProperties
.
mimeType
);
json
.
put
(
KEY_MIME_TYPE
,
mediaItem
.
playbackProperties
.
mimeType
);
if
(
mediaItem
.
playbackProperties
.
drmConfiguration
!=
null
)
{
if
(
mediaItem
.
playbackProperties
.
drmConfiguration
!=
null
)
{
json
.
put
(
json
.
put
(
...
...
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java
View file @
b22783f8
...
@@ -232,36 +232,30 @@ public class CastPlayerTest {
...
@@ -232,36 +232,30 @@ public class CastPlayerTest {
@Test
@Test
public
void
setMediaItems_callsRemoteMediaClient
()
{
public
void
setMediaItems_callsRemoteMediaClient
()
{
List
<
MediaItem
>
mediaItems
=
new
ArrayList
<>();
List
<
MediaItem
>
mediaItems
=
new
ArrayList
<>();
String
sourceU
ri1
=
"http://www.google.com/video1"
;
String
u
ri1
=
"http://www.google.com/video1"
;
String
sourceU
ri2
=
"http://www.google.com/video2"
;
String
u
ri2
=
"http://www.google.com/video2"
;
mediaItems
.
add
(
mediaItems
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
().
setUri
(
uri1
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
());
.
setSourceUri
(
sourceUri1
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
build
());
mediaItems
.
add
(
mediaItems
.
add
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
().
setUri
(
uri2
).
setMimeType
(
MimeTypes
.
APPLICATION_MP4
).
build
());
.
setSourceUri
(
sourceUri2
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MP4
)
.
build
());
castPlayer
.
setMediaItems
(
mediaItems
,
/* startWindowIndex= */
1
,
/* startPositionMs= */
2000L
);
castPlayer
.
setMediaItems
(
mediaItems
,
/* startWindowIndex= */
1
,
/* startPositionMs= */
2000L
);
verify
(
mockRemoteMediaClient
)
verify
(
mockRemoteMediaClient
)
.
queueLoad
(
queueItemsArgumentCaptor
.
capture
(),
eq
(
1
),
anyInt
(),
eq
(
2000L
),
any
());
.
queueLoad
(
queueItemsArgumentCaptor
.
capture
(),
eq
(
1
),
anyInt
(),
eq
(
2000L
),
any
());
MediaQueueItem
[]
mediaQueueItems
=
queueItemsArgumentCaptor
.
getValue
();
MediaQueueItem
[]
mediaQueueItems
=
queueItemsArgumentCaptor
.
getValue
();
assertThat
(
mediaQueueItems
[
0
].
getMedia
().
getContentId
()).
isEqualTo
(
sourceU
ri1
);
assertThat
(
mediaQueueItems
[
0
].
getMedia
().
getContentId
()).
isEqualTo
(
u
ri1
);
assertThat
(
mediaQueueItems
[
1
].
getMedia
().
getContentId
()).
isEqualTo
(
sourceU
ri2
);
assertThat
(
mediaQueueItems
[
1
].
getMedia
().
getContentId
()).
isEqualTo
(
u
ri2
);
}
}
@Test
@Test
public
void
setMediaItems_doNotReset_callsRemoteMediaClient
()
{
public
void
setMediaItems_doNotReset_callsRemoteMediaClient
()
{
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
List
<
MediaItem
>
mediaItems
=
new
ArrayList
<>();
List
<
MediaItem
>
mediaItems
=
new
ArrayList
<>();
String
sourceU
ri1
=
"http://www.google.com/video1"
;
String
u
ri1
=
"http://www.google.com/video1"
;
String
sourceU
ri2
=
"http://www.google.com/video2"
;
String
u
ri2
=
"http://www.google.com/video2"
;
mediaItems
.
add
(
builder
.
set
SourceUri
(
sourceU
ri1
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
());
mediaItems
.
add
(
builder
.
set
Uri
(
u
ri1
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
());
mediaItems
.
add
(
builder
.
set
SourceUri
(
sourceU
ri2
).
setMimeType
(
MimeTypes
.
APPLICATION_MP4
).
build
());
mediaItems
.
add
(
builder
.
set
Uri
(
u
ri2
).
setMimeType
(
MimeTypes
.
APPLICATION_MP4
).
build
());
int
startWindowIndex
=
C
.
INDEX_UNSET
;
int
startWindowIndex
=
C
.
INDEX_UNSET
;
long
startPositionMs
=
2000L
;
long
startPositionMs
=
2000L
;
...
@@ -271,18 +265,18 @@ public class CastPlayerTest {
...
@@ -271,18 +265,18 @@ public class CastPlayerTest {
.
queueLoad
(
queueItemsArgumentCaptor
.
capture
(),
eq
(
0
),
anyInt
(),
eq
(
0L
),
any
());
.
queueLoad
(
queueItemsArgumentCaptor
.
capture
(),
eq
(
0
),
anyInt
(),
eq
(
0L
),
any
());
MediaQueueItem
[]
mediaQueueItems
=
queueItemsArgumentCaptor
.
getValue
();
MediaQueueItem
[]
mediaQueueItems
=
queueItemsArgumentCaptor
.
getValue
();
assertThat
(
mediaQueueItems
[
0
].
getMedia
().
getContentId
()).
isEqualTo
(
sourceU
ri1
);
assertThat
(
mediaQueueItems
[
0
].
getMedia
().
getContentId
()).
isEqualTo
(
u
ri1
);
assertThat
(
mediaQueueItems
[
1
].
getMedia
().
getContentId
()).
isEqualTo
(
sourceU
ri2
);
assertThat
(
mediaQueueItems
[
1
].
getMedia
().
getContentId
()).
isEqualTo
(
u
ri2
);
}
}
@Test
@Test
public
void
addMediaItems_callsRemoteMediaClient
()
{
public
void
addMediaItems_callsRemoteMediaClient
()
{
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
List
<
MediaItem
>
mediaItems
=
new
ArrayList
<>();
List
<
MediaItem
>
mediaItems
=
new
ArrayList
<>();
String
sourceU
ri1
=
"http://www.google.com/video1"
;
String
u
ri1
=
"http://www.google.com/video1"
;
String
sourceU
ri2
=
"http://www.google.com/video2"
;
String
u
ri2
=
"http://www.google.com/video2"
;
mediaItems
.
add
(
builder
.
set
SourceUri
(
sourceU
ri1
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
());
mediaItems
.
add
(
builder
.
set
Uri
(
u
ri1
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
());
mediaItems
.
add
(
builder
.
set
SourceUri
(
sourceU
ri2
).
setMimeType
(
MimeTypes
.
APPLICATION_MP4
).
build
());
mediaItems
.
add
(
builder
.
set
Uri
(
u
ri2
).
setMimeType
(
MimeTypes
.
APPLICATION_MP4
).
build
());
castPlayer
.
addMediaItems
(
mediaItems
);
castPlayer
.
addMediaItems
(
mediaItems
);
...
@@ -291,8 +285,8 @@ public class CastPlayerTest {
...
@@ -291,8 +285,8 @@ public class CastPlayerTest {
queueItemsArgumentCaptor
.
capture
(),
eq
(
MediaQueueItem
.
INVALID_ITEM_ID
),
any
());
queueItemsArgumentCaptor
.
capture
(),
eq
(
MediaQueueItem
.
INVALID_ITEM_ID
),
any
());
MediaQueueItem
[]
mediaQueueItems
=
queueItemsArgumentCaptor
.
getValue
();
MediaQueueItem
[]
mediaQueueItems
=
queueItemsArgumentCaptor
.
getValue
();
assertThat
(
mediaQueueItems
[
0
].
getMedia
().
getContentId
()).
isEqualTo
(
sourceU
ri1
);
assertThat
(
mediaQueueItems
[
0
].
getMedia
().
getContentId
()).
isEqualTo
(
u
ri1
);
assertThat
(
mediaQueueItems
[
1
].
getMedia
().
getContentId
()).
isEqualTo
(
sourceU
ri2
);
assertThat
(
mediaQueueItems
[
1
].
getMedia
().
getContentId
()).
isEqualTo
(
u
ri2
);
}
}
@SuppressWarnings
(
"ConstantConditions"
)
@SuppressWarnings
(
"ConstantConditions"
)
...
@@ -301,12 +295,9 @@ public class CastPlayerTest {
...
@@ -301,12 +295,9 @@ public class CastPlayerTest {
int
[]
mediaQueueItemIds
=
createMediaQueueItemIds
(
/* numberOfIds= */
2
);
int
[]
mediaQueueItemIds
=
createMediaQueueItemIds
(
/* numberOfIds= */
2
);
List
<
MediaItem
>
mediaItems
=
createMediaItems
(
mediaQueueItemIds
);
List
<
MediaItem
>
mediaItems
=
createMediaItems
(
mediaQueueItemIds
);
fillTimeline
(
mediaItems
,
mediaQueueItemIds
);
fillTimeline
(
mediaItems
,
mediaQueueItemIds
);
String
sourceU
ri
=
"http://www.google.com/video3"
;
String
u
ri
=
"http://www.google.com/video3"
;
MediaItem
anotherMediaItem
=
MediaItem
anotherMediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
().
setUri
(
uri
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
();
.
setSourceUri
(
sourceUri
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
build
();
// Add another on position 1
// Add another on position 1
int
index
=
1
;
int
index
=
1
;
...
@@ -319,7 +310,7 @@ public class CastPlayerTest {
...
@@ -319,7 +310,7 @@ public class CastPlayerTest {
any
());
any
());
MediaQueueItem
[]
mediaQueueItems
=
queueItemsArgumentCaptor
.
getValue
();
MediaQueueItem
[]
mediaQueueItems
=
queueItemsArgumentCaptor
.
getValue
();
assertThat
(
mediaQueueItems
[
0
].
getMedia
().
getContentId
()).
isEqualTo
(
sourceU
ri
);
assertThat
(
mediaQueueItems
[
0
].
getMedia
().
getContentId
()).
isEqualTo
(
u
ri
);
}
}
@Test
@Test
...
@@ -477,7 +468,7 @@ public class CastPlayerTest {
...
@@ -477,7 +468,7 @@ public class CastPlayerTest {
for
(
int
mediaQueueItemId
:
mediaQueueItemIds
)
{
for
(
int
mediaQueueItemId
:
mediaQueueItemIds
)
{
MediaItem
mediaItem
=
MediaItem
mediaItem
=
builder
builder
.
set
Source
Uri
(
"http://www.google.com/video"
+
mediaQueueItemId
)
.
setUri
(
"http://www.google.com/video"
+
mediaQueueItemId
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
setTag
(
mediaQueueItemId
)
.
setTag
(
mediaQueueItemId
)
.
build
();
.
build
();
...
...
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/DefaultMediaItemConverterTest.java
View file @
b22783f8
...
@@ -36,7 +36,7 @@ public class DefaultMediaItemConverterTest {
...
@@ -36,7 +36,7 @@ public class DefaultMediaItemConverterTest {
public
void
serialize_deserialize_minimal
()
{
public
void
serialize_deserialize_minimal
()
{
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
MediaItem
item
=
MediaItem
item
=
builder
.
set
Source
Uri
(
"http://example.com"
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
();
builder
.
setUri
(
"http://example.com"
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
();
DefaultMediaItemConverter
converter
=
new
DefaultMediaItemConverter
();
DefaultMediaItemConverter
converter
=
new
DefaultMediaItemConverter
();
MediaQueueItem
queueItem
=
converter
.
toMediaQueueItem
(
item
);
MediaQueueItem
queueItem
=
converter
.
toMediaQueueItem
(
item
);
...
@@ -50,7 +50,7 @@ public class DefaultMediaItemConverterTest {
...
@@ -50,7 +50,7 @@ public class DefaultMediaItemConverterTest {
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
MediaItem
.
Builder
builder
=
new
MediaItem
.
Builder
();
MediaItem
item
=
MediaItem
item
=
builder
builder
.
set
Source
Uri
(
Uri
.
parse
(
"http://example.com"
))
.
setUri
(
Uri
.
parse
(
"http://example.com"
))
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
build
())
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
...
...
library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java
View file @
b22783f8
...
@@ -32,30 +32,30 @@ import java.util.UUID;
...
@@ -32,30 +32,30 @@ import java.util.UUID;
public
final
class
MediaItem
{
public
final
class
MediaItem
{
/**
/**
* Creates a {@link MediaItem} for the given
source
uri.
* Creates a {@link MediaItem} for the given uri.
*
*
* @param
sourceUri The sourc
e uri.
* @param
uri Th
e uri.
* @return An {@link MediaItem} for the given
source
uri.
* @return An {@link MediaItem} for the given uri.
*/
*/
public
static
MediaItem
fromUri
(
String
sourceU
ri
)
{
public
static
MediaItem
fromUri
(
String
u
ri
)
{
return
new
MediaItem
.
Builder
().
set
SourceUri
(
sourceU
ri
).
build
();
return
new
MediaItem
.
Builder
().
set
Uri
(
u
ri
).
build
();
}
}
/**
/**
* Creates a {@link MediaItem} for the given {@link Uri
source
uri}.
* Creates a {@link MediaItem} for the given {@link Uri uri}.
*
*
* @param
sourceUri The {@link Uri source
uri}.
* @param
uri The {@link Uri
uri}.
* @return An {@link MediaItem} for the given
source
uri.
* @return An {@link MediaItem} for the given uri.
*/
*/
public
static
MediaItem
fromUri
(
Uri
sourceU
ri
)
{
public
static
MediaItem
fromUri
(
Uri
u
ri
)
{
return
new
MediaItem
.
Builder
().
set
SourceUri
(
sourceU
ri
).
build
();
return
new
MediaItem
.
Builder
().
set
Uri
(
u
ri
).
build
();
}
}
/** A builder for {@link MediaItem} instances. */
/** A builder for {@link MediaItem} instances. */
public
static
final
class
Builder
{
public
static
final
class
Builder
{
@Nullable
private
String
mediaId
;
@Nullable
private
String
mediaId
;
@Nullable
private
Uri
sourceU
ri
;
@Nullable
private
Uri
u
ri
;
@Nullable
private
String
mimeType
;
@Nullable
private
String
mimeType
;
private
long
clipStartPositionMs
;
private
long
clipStartPositionMs
;
private
long
clipEndPositionMs
;
private
long
clipEndPositionMs
;
...
@@ -99,7 +99,7 @@ public final class MediaItem {
...
@@ -99,7 +99,7 @@ public final class MediaItem {
adTagUri
=
playbackProperties
.
adTagUri
;
adTagUri
=
playbackProperties
.
adTagUri
;
customCacheKey
=
playbackProperties
.
customCacheKey
;
customCacheKey
=
playbackProperties
.
customCacheKey
;
mimeType
=
playbackProperties
.
mimeType
;
mimeType
=
playbackProperties
.
mimeType
;
sourceUri
=
playbackProperties
.
sourceU
ri
;
uri
=
playbackProperties
.
u
ri
;
streamKeys
=
playbackProperties
.
streamKeys
;
streamKeys
=
playbackProperties
.
streamKeys
;
subtitles
=
playbackProperties
.
subtitles
;
subtitles
=
playbackProperties
.
subtitles
;
tag
=
playbackProperties
.
tag
;
tag
=
playbackProperties
.
tag
;
...
@@ -117,28 +117,25 @@ public final class MediaItem {
...
@@ -117,28 +117,25 @@ public final class MediaItem {
}
}
/**
/**
* Sets the optional media id which identifies the media item. If not specified, {@link
* Sets the optional media id which identifies the media item. If not specified, {@link
#setUri}
*
#setSourceUri} must be called and the string representation of {@link
*
must be called and the string representation of {@link PlaybackProperties#uri} is used as the
*
PlaybackProperties#sourceUri} is used as the
media id.
* media id.
*/
*/
public
Builder
setMediaId
(
@Nullable
String
mediaId
)
{
public
Builder
setMediaId
(
@Nullable
String
mediaId
)
{
this
.
mediaId
=
mediaId
;
this
.
mediaId
=
mediaId
;
return
this
;
return
this
;
}
}
/**
/** Sets the optional uri. If not specified, {@link #setMediaId(String)} must be called. */
* Sets the optional source uri. If not specified, {@link #setMediaId(String)} must be called.
public
Builder
setUri
(
@Nullable
String
uri
)
{
*/
return
setUri
(
uri
==
null
?
null
:
Uri
.
parse
(
uri
));
public
Builder
setSourceUri
(
@Nullable
String
sourceUri
)
{
return
setSourceUri
(
sourceUri
==
null
?
null
:
Uri
.
parse
(
sourceUri
));
}
}
/**
/**
* Sets the optional source {@link Uri}. If not specified, {@link #setMediaId(String)} must be
* Sets the optional {@link Uri}. If not specified, {@link #setMediaId(String)} must be called.
* called.
*/
*/
public
Builder
set
SourceUri
(
@Nullable
Uri
sourceU
ri
)
{
public
Builder
set
Uri
(
@Nullable
Uri
u
ri
)
{
this
.
sourceUri
=
sourceU
ri
;
this
.
uri
=
u
ri
;
return
this
;
return
this
;
}
}
...
@@ -147,7 +144,7 @@ public final class MediaItem {
...
@@ -147,7 +144,7 @@ public final class MediaItem {
*
*
* <p>The mime type may be used as a hint for inferring the type of the media item.
* <p>The mime type may be used as a hint for inferring the type of the media item.
*
*
* <p>If a {@link PlaybackProperties#
sourceU
ri} is set, the mime type is used to create a {@link
* <p>If a {@link PlaybackProperties#
u
ri} is set, the mime type is used to create a {@link
* PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*
*
* @param mimeType The mime type.
* @param mimeType The mime type.
...
@@ -210,8 +207,8 @@ public final class MediaItem {
...
@@ -210,8 +207,8 @@ public final class MediaItem {
* Sets the optional license server {@link Uri}. If a license uri is set, the {@link
* Sets the optional license server {@link Uri}. If a license uri is set, the {@link
* DrmConfiguration#uuid} needs to be specified as well.
* DrmConfiguration#uuid} needs to be specified as well.
*
*
* <p>If a {@link PlaybackProperties#
sourceUri} is set, the drm license uri is used to create a
* <p>If a {@link PlaybackProperties#
uri} is set, the drm license uri is used to create a {@link
*
{@link
PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setDrmLicenseUri
(
@Nullable
Uri
licenseUri
)
{
public
Builder
setDrmLicenseUri
(
@Nullable
Uri
licenseUri
)
{
drmLicenseUri
=
licenseUri
;
drmLicenseUri
=
licenseUri
;
...
@@ -222,8 +219,8 @@ public final class MediaItem {
...
@@ -222,8 +219,8 @@ public final class MediaItem {
* Sets the optional license server uri as a {@link String}. If a license uri is set, the {@link
* Sets the optional license server uri as a {@link String}. If a license uri is set, the {@link
* DrmConfiguration#uuid} needs to be specified as well.
* DrmConfiguration#uuid} needs to be specified as well.
*
*
* <p>If a {@link PlaybackProperties#
sourceUri} is set, the drm license uri is used to create a
* <p>If a {@link PlaybackProperties#
uri} is set, the drm license uri is used to create a {@link
*
{@link
PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setDrmLicenseUri
(
@Nullable
String
licenseUri
)
{
public
Builder
setDrmLicenseUri
(
@Nullable
String
licenseUri
)
{
drmLicenseUri
=
licenseUri
==
null
?
null
:
Uri
.
parse
(
licenseUri
);
drmLicenseUri
=
licenseUri
==
null
?
null
:
Uri
.
parse
(
licenseUri
);
...
@@ -250,8 +247,8 @@ public final class MediaItem {
...
@@ -250,8 +247,8 @@ public final class MediaItem {
* Sets the {@link UUID} of the protection scheme. If a drm system uuid is set, the {@link
* Sets the {@link UUID} of the protection scheme. If a drm system uuid is set, the {@link
* DrmConfiguration#licenseUri} needs to be set as well.
* DrmConfiguration#licenseUri} needs to be set as well.
*
*
* <p>If a {@link PlaybackProperties#
sourceUri} is set, the drm system uuid is used to create a
* <p>If a {@link PlaybackProperties#
uri} is set, the drm system uuid is used to create a {@link
*
{@link
PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setDrmUuid
(
@Nullable
UUID
uuid
)
{
public
Builder
setDrmUuid
(
@Nullable
UUID
uuid
)
{
drmUuid
=
uuid
;
drmUuid
=
uuid
;
...
@@ -261,8 +258,8 @@ public final class MediaItem {
...
@@ -261,8 +258,8 @@ public final class MediaItem {
/**
/**
* Sets whether the drm configuration is multi session enabled.
* Sets whether the drm configuration is multi session enabled.
*
*
* <p>If a {@link PlaybackProperties#
sourceUri} is set, the drm multi session flag is used to
* <p>If a {@link PlaybackProperties#
uri} is set, the drm multi session flag is used to create a
*
create a
{@link PlaybackProperties} object. Otherwise it will be ignored.
* {@link PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setDrmMultiSession
(
boolean
multiSession
)
{
public
Builder
setDrmMultiSession
(
boolean
multiSession
)
{
drmMultiSession
=
multiSession
;
drmMultiSession
=
multiSession
;
...
@@ -333,8 +330,8 @@ public final class MediaItem {
...
@@ -333,8 +330,8 @@ public final class MediaItem {
*
*
* <p>{@code null} or an empty {@link List} can be used for a reset.
* <p>{@code null} or an empty {@link List} can be used for a reset.
*
*
* <p>If a {@link PlaybackProperties#
sourceUri} is set, the stream keys are used to create a
* <p>If a {@link PlaybackProperties#
uri} is set, the stream keys are used to create a {@link
*
{@link
PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setStreamKeys
(
@Nullable
List
<
StreamKey
>
streamKeys
)
{
public
Builder
setStreamKeys
(
@Nullable
List
<
StreamKey
>
streamKeys
)
{
this
.
streamKeys
=
this
.
streamKeys
=
...
@@ -347,7 +344,7 @@ public final class MediaItem {
...
@@ -347,7 +344,7 @@ public final class MediaItem {
/**
/**
* Sets the optional custom cache key (only used for progressive streams).
* Sets the optional custom cache key (only used for progressive streams).
*
*
* <p>If a {@link PlaybackProperties#
sourceU
ri} is set, the custom cache key is used to create a
* <p>If a {@link PlaybackProperties#
u
ri} is set, the custom cache key is used to create a
* {@link PlaybackProperties} object. Otherwise it will be ignored.
* {@link PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setCustomCacheKey
(
@Nullable
String
customCacheKey
)
{
public
Builder
setCustomCacheKey
(
@Nullable
String
customCacheKey
)
{
...
@@ -360,8 +357,8 @@ public final class MediaItem {
...
@@ -360,8 +357,8 @@ public final class MediaItem {
*
*
* <p>{@code null} or an empty {@link List} can be used for a reset.
* <p>{@code null} or an empty {@link List} can be used for a reset.
*
*
* <p>If a {@link PlaybackProperties#
sourceUri} is set, the subtitles are used to create a
* <p>If a {@link PlaybackProperties#
uri} is set, the subtitles are used to create a {@link
*
{@link
PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setSubtitles
(
@Nullable
List
<
Subtitle
>
subtitles
)
{
public
Builder
setSubtitles
(
@Nullable
List
<
Subtitle
>
subtitles
)
{
this
.
subtitles
=
this
.
subtitles
=
...
@@ -374,8 +371,8 @@ public final class MediaItem {
...
@@ -374,8 +371,8 @@ public final class MediaItem {
/**
/**
* Sets the optional ad tag URI.
* Sets the optional ad tag URI.
*
*
* <p>If a {@link PlaybackProperties#
sourceUri} is set, the ad tag URI is used to create a
* <p>If a {@link PlaybackProperties#
uri} is set, the ad tag URI is used to create a {@link
*
{@link
PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setAdTagUri
(
@Nullable
String
adTagUri
)
{
public
Builder
setAdTagUri
(
@Nullable
String
adTagUri
)
{
this
.
adTagUri
=
adTagUri
!=
null
?
Uri
.
parse
(
adTagUri
)
:
null
;
this
.
adTagUri
=
adTagUri
!=
null
?
Uri
.
parse
(
adTagUri
)
:
null
;
...
@@ -385,8 +382,8 @@ public final class MediaItem {
...
@@ -385,8 +382,8 @@ public final class MediaItem {
/**
/**
* Sets the optional ad tag {@link Uri}.
* Sets the optional ad tag {@link Uri}.
*
*
* <p>If a {@link PlaybackProperties#
sourceUri} is set, the ad tag URI is used to create a
* <p>If a {@link PlaybackProperties#
uri} is set, the ad tag URI is used to create a {@link
*
{@link
PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setAdTagUri
(
@Nullable
Uri
adTagUri
)
{
public
Builder
setAdTagUri
(
@Nullable
Uri
adTagUri
)
{
this
.
adTagUri
=
adTagUri
;
this
.
adTagUri
=
adTagUri
;
...
@@ -398,7 +395,7 @@ public final class MediaItem {
...
@@ -398,7 +395,7 @@ public final class MediaItem {
* published in the {@code com.google.android.exoplayer2.Timeline} of the source as {@code
* published in the {@code com.google.android.exoplayer2.Timeline} of the source as {@code
* com.google.android.exoplayer2.Timeline.Window#tag}.
* com.google.android.exoplayer2.Timeline.Window#tag}.
*
*
* <p>If a {@link PlaybackProperties#
sourceU
ri} is set, the tag is used to create a {@link
* <p>If a {@link PlaybackProperties#
u
ri} is set, the tag is used to create a {@link
* PlaybackProperties} object. Otherwise it will be ignored.
* PlaybackProperties} object. Otherwise it will be ignored.
*/
*/
public
Builder
setTag
(
@Nullable
Object
tag
)
{
public
Builder
setTag
(
@Nullable
Object
tag
)
{
...
@@ -418,10 +415,10 @@ public final class MediaItem {
...
@@ -418,10 +415,10 @@ public final class MediaItem {
public
MediaItem
build
()
{
public
MediaItem
build
()
{
Assertions
.
checkState
(
drmLicenseUri
==
null
||
drmUuid
!=
null
);
Assertions
.
checkState
(
drmLicenseUri
==
null
||
drmUuid
!=
null
);
@Nullable
PlaybackProperties
playbackProperties
=
null
;
@Nullable
PlaybackProperties
playbackProperties
=
null
;
if
(
sourceU
ri
!=
null
)
{
if
(
u
ri
!=
null
)
{
playbackProperties
=
playbackProperties
=
new
PlaybackProperties
(
new
PlaybackProperties
(
sourceU
ri
,
u
ri
,
mimeType
,
mimeType
,
drmUuid
!=
null
drmUuid
!=
null
?
new
DrmConfiguration
(
?
new
DrmConfiguration
(
...
@@ -438,7 +435,7 @@ public final class MediaItem {
...
@@ -438,7 +435,7 @@ public final class MediaItem {
subtitles
,
subtitles
,
adTagUri
,
adTagUri
,
tag
);
tag
);
mediaId
=
mediaId
!=
null
?
mediaId
:
sourceU
ri
.
toString
();
mediaId
=
mediaId
!=
null
?
mediaId
:
u
ri
.
toString
();
}
}
return
new
MediaItem
(
return
new
MediaItem
(
Assertions
.
checkNotNull
(
mediaId
),
Assertions
.
checkNotNull
(
mediaId
),
...
@@ -540,8 +537,8 @@ public final class MediaItem {
...
@@ -540,8 +537,8 @@ public final class MediaItem {
/** Properties for local playback. */
/** Properties for local playback. */
public
static
final
class
PlaybackProperties
{
public
static
final
class
PlaybackProperties
{
/** The
source
{@link Uri}. */
/** The {@link Uri}. */
public
final
Uri
sourceU
ri
;
public
final
Uri
u
ri
;
/**
/**
* The optional mime type of the item, or {@code null} if unspecified.
* The optional mime type of the item, or {@code null} if unspecified.
...
@@ -574,7 +571,7 @@ public final class MediaItem {
...
@@ -574,7 +571,7 @@ public final class MediaItem {
@Nullable
public
final
Object
tag
;
@Nullable
public
final
Object
tag
;
private
PlaybackProperties
(
private
PlaybackProperties
(
Uri
sourceU
ri
,
Uri
u
ri
,
@Nullable
String
mimeType
,
@Nullable
String
mimeType
,
@Nullable
DrmConfiguration
drmConfiguration
,
@Nullable
DrmConfiguration
drmConfiguration
,
List
<
StreamKey
>
streamKeys
,
List
<
StreamKey
>
streamKeys
,
...
@@ -582,7 +579,7 @@ public final class MediaItem {
...
@@ -582,7 +579,7 @@ public final class MediaItem {
List
<
Subtitle
>
subtitles
,
List
<
Subtitle
>
subtitles
,
@Nullable
Uri
adTagUri
,
@Nullable
Uri
adTagUri
,
@Nullable
Object
tag
)
{
@Nullable
Object
tag
)
{
this
.
sourceUri
=
sourceU
ri
;
this
.
uri
=
u
ri
;
this
.
mimeType
=
mimeType
;
this
.
mimeType
=
mimeType
;
this
.
drmConfiguration
=
drmConfiguration
;
this
.
drmConfiguration
=
drmConfiguration
;
this
.
streamKeys
=
streamKeys
;
this
.
streamKeys
=
streamKeys
;
...
@@ -602,7 +599,7 @@ public final class MediaItem {
...
@@ -602,7 +599,7 @@ public final class MediaItem {
}
}
PlaybackProperties
other
=
(
PlaybackProperties
)
obj
;
PlaybackProperties
other
=
(
PlaybackProperties
)
obj
;
return
sourceUri
.
equals
(
other
.
sourceU
ri
)
return
uri
.
equals
(
other
.
u
ri
)
&&
Util
.
areEqual
(
mimeType
,
other
.
mimeType
)
&&
Util
.
areEqual
(
mimeType
,
other
.
mimeType
)
&&
Util
.
areEqual
(
drmConfiguration
,
other
.
drmConfiguration
)
&&
Util
.
areEqual
(
drmConfiguration
,
other
.
drmConfiguration
)
&&
streamKeys
.
equals
(
other
.
streamKeys
)
&&
streamKeys
.
equals
(
other
.
streamKeys
)
...
@@ -614,7 +611,7 @@ public final class MediaItem {
...
@@ -614,7 +611,7 @@ public final class MediaItem {
@Override
@Override
public
int
hashCode
()
{
public
int
hashCode
()
{
int
result
=
sourceU
ri
.
hashCode
();
int
result
=
u
ri
.
hashCode
();
result
=
31
*
result
+
(
mimeType
==
null
?
0
:
mimeType
.
hashCode
());
result
=
31
*
result
+
(
mimeType
==
null
?
0
:
mimeType
.
hashCode
());
result
=
31
*
result
+
(
drmConfiguration
==
null
?
0
:
drmConfiguration
.
hashCode
());
result
=
31
*
result
+
(
drmConfiguration
==
null
?
0
:
drmConfiguration
.
hashCode
());
result
=
31
*
result
+
streamKeys
.
hashCode
();
result
=
31
*
result
+
streamKeys
.
hashCode
();
...
...
library/common/src/main/java/com/google/android/exoplayer2/util/Util.java
View file @
b22783f8
...
@@ -213,7 +213,7 @@ public final class Util {
...
@@ -213,7 +213,7 @@ public final class Util {
if
(
mediaItem
.
playbackProperties
==
null
)
{
if
(
mediaItem
.
playbackProperties
==
null
)
{
continue
;
continue
;
}
}
if
(
isLocalFileUri
(
mediaItem
.
playbackProperties
.
sourceU
ri
))
{
if
(
isLocalFileUri
(
mediaItem
.
playbackProperties
.
u
ri
))
{
return
requestExternalStoragePermission
(
activity
);
return
requestExternalStoragePermission
(
activity
);
}
}
for
(
int
i
=
0
;
i
<
mediaItem
.
playbackProperties
.
subtitles
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
mediaItem
.
playbackProperties
.
subtitles
.
size
();
i
++)
{
...
@@ -241,7 +241,7 @@ public final class Util {
...
@@ -241,7 +241,7 @@ public final class Util {
if
(
mediaItem
.
playbackProperties
==
null
)
{
if
(
mediaItem
.
playbackProperties
==
null
)
{
continue
;
continue
;
}
}
if
(
isTrafficRestricted
(
mediaItem
.
playbackProperties
.
sourceU
ri
))
{
if
(
isTrafficRestricted
(
mediaItem
.
playbackProperties
.
u
ri
))
{
return
false
;
return
false
;
}
}
for
(
int
i
=
0
;
i
<
mediaItem
.
playbackProperties
.
subtitles
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
mediaItem
.
playbackProperties
.
subtitles
.
size
();
i
++)
{
...
...
library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java
View file @
b22783f8
...
@@ -38,26 +38,26 @@ public class MediaItemTest {
...
@@ -38,26 +38,26 @@ public class MediaItemTest {
private
static
final
String
URI_STRING
=
"http://www.google.com"
;
private
static
final
String
URI_STRING
=
"http://www.google.com"
;
@Test
@Test
public
void
builder_needs
Source
UriOrMediaId
()
{
public
void
builder_needsUriOrMediaId
()
{
assertThrows
(
NullPointerException
.
class
,
()
->
new
MediaItem
.
Builder
().
build
());
assertThrows
(
NullPointerException
.
class
,
()
->
new
MediaItem
.
Builder
().
build
());
}
}
@Test
@Test
public
void
builderWithUri_sets
Source
Uri
()
{
public
void
builderWithUri_setsUri
()
{
Uri
uri
=
Uri
.
parse
(
URI_STRING
);
Uri
uri
=
Uri
.
parse
(
URI_STRING
);
MediaItem
mediaItem
=
MediaItem
.
fromUri
(
uri
);
MediaItem
mediaItem
=
MediaItem
.
fromUri
(
uri
);
assertThat
(
mediaItem
.
playbackProperties
.
sourceU
ri
.
toString
()).
isEqualTo
(
URI_STRING
);
assertThat
(
mediaItem
.
playbackProperties
.
u
ri
.
toString
()).
isEqualTo
(
URI_STRING
);
assertThat
(
mediaItem
.
mediaId
).
isEqualTo
(
URI_STRING
);
assertThat
(
mediaItem
.
mediaId
).
isEqualTo
(
URI_STRING
);
assertThat
(
mediaItem
.
mediaMetadata
).
isNotNull
();
assertThat
(
mediaItem
.
mediaMetadata
).
isNotNull
();
}
}
@Test
@Test
public
void
builderWithUriAsString_sets
Source
Uri
()
{
public
void
builderWithUriAsString_setsUri
()
{
MediaItem
mediaItem
=
MediaItem
.
fromUri
(
URI_STRING
);
MediaItem
mediaItem
=
MediaItem
.
fromUri
(
URI_STRING
);
assertThat
(
mediaItem
.
playbackProperties
.
sourceU
ri
.
toString
()).
isEqualTo
(
URI_STRING
);
assertThat
(
mediaItem
.
playbackProperties
.
u
ri
.
toString
()).
isEqualTo
(
URI_STRING
);
assertThat
(
mediaItem
.
mediaId
).
isEqualTo
(
URI_STRING
);
assertThat
(
mediaItem
.
mediaId
).
isEqualTo
(
URI_STRING
);
}
}
...
@@ -71,10 +71,7 @@ public class MediaItemTest {
...
@@ -71,10 +71,7 @@ public class MediaItemTest {
@Test
@Test
public
void
builderSetMimeType_setsMimeType
()
{
public
void
builderSetMimeType_setsMimeType
()
{
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
();
.
setSourceUri
(
URI_STRING
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
build
();
assertThat
(
mediaItem
.
playbackProperties
.
mimeType
).
isEqualTo
(
MimeTypes
.
APPLICATION_MPD
);
assertThat
(
mediaItem
.
playbackProperties
.
mimeType
).
isEqualTo
(
MimeTypes
.
APPLICATION_MPD
);
}
}
...
@@ -82,7 +79,7 @@ public class MediaItemTest {
...
@@ -82,7 +79,7 @@ public class MediaItemTest {
@Test
@Test
public
void
builderSetDrmConfig_isNullByDefault
()
{
public
void
builderSetDrmConfig_isNullByDefault
()
{
// Null value by default.
// Null value by default.
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
build
();
assertThat
(
mediaItem
.
playbackProperties
.
drmConfiguration
).
isNull
();
assertThat
(
mediaItem
.
playbackProperties
.
drmConfiguration
).
isNull
();
}
}
...
@@ -94,7 +91,7 @@ public class MediaItemTest {
...
@@ -94,7 +91,7 @@ public class MediaItemTest {
byte
[]
keySetId
=
new
byte
[]
{
1
,
2
,
3
};
byte
[]
keySetId
=
new
byte
[]
{
1
,
2
,
3
};
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_STRING
)
.
setUri
(
URI_STRING
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmLicenseUri
(
licenseUri
)
.
setDrmLicenseUri
(
licenseUri
)
.
setDrmLicenseRequestHeaders
(
requestHeaders
)
.
setDrmLicenseRequestHeaders
(
requestHeaders
)
...
@@ -121,7 +118,7 @@ public class MediaItemTest {
...
@@ -121,7 +118,7 @@ public class MediaItemTest {
Uri
licenseUri
=
Uri
.
parse
(
URI_STRING
);
Uri
licenseUri
=
Uri
.
parse
(
URI_STRING
);
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_STRING
)
.
setUri
(
URI_STRING
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmLicenseUri
(
licenseUri
)
.
setDrmLicenseUri
(
licenseUri
)
.
setDrmSessionForClearTypes
(
Arrays
.
asList
(
C
.
TRACK_TYPE_AUDIO
))
.
setDrmSessionForClearTypes
(
Arrays
.
asList
(
C
.
TRACK_TYPE_AUDIO
))
...
@@ -138,7 +135,7 @@ public class MediaItemTest {
...
@@ -138,7 +135,7 @@ public class MediaItemTest {
IllegalStateException
.
class
,
IllegalStateException
.
class
,
()
->
()
->
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_STRING
)
.
setUri
(
URI_STRING
)
// missing uuid
// missing uuid
.
setDrmLicenseUri
(
Uri
.
parse
(
URI_STRING
))
.
setDrmLicenseUri
(
Uri
.
parse
(
URI_STRING
))
.
build
());
.
build
());
...
@@ -147,7 +144,7 @@ public class MediaItemTest {
...
@@ -147,7 +144,7 @@ public class MediaItemTest {
@Test
@Test
public
void
builderSetCustomCacheKey_setsCustomCacheKey
()
{
public
void
builderSetCustomCacheKey_setsCustomCacheKey
()
{
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
setCustomCacheKey
(
"key"
).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setCustomCacheKey
(
"key"
).
build
();
assertThat
(
mediaItem
.
playbackProperties
.
customCacheKey
).
isEqualTo
(
"key"
);
assertThat
(
mediaItem
.
playbackProperties
.
customCacheKey
).
isEqualTo
(
"key"
);
}
}
...
@@ -159,7 +156,7 @@ public class MediaItemTest {
...
@@ -159,7 +156,7 @@ public class MediaItemTest {
streamKeys
.
add
(
new
StreamKey
(
0
,
1
,
1
));
streamKeys
.
add
(
new
StreamKey
(
0
,
1
,
1
));
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
setStreamKeys
(
streamKeys
).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setStreamKeys
(
streamKeys
).
build
();
assertThat
(
mediaItem
.
playbackProperties
.
streamKeys
).
isEqualTo
(
streamKeys
);
assertThat
(
mediaItem
.
playbackProperties
.
streamKeys
).
isEqualTo
(
streamKeys
);
}
}
...
@@ -177,14 +174,14 @@ public class MediaItemTest {
...
@@ -177,14 +174,14 @@ public class MediaItemTest {
C
.
SELECTION_FLAG_DEFAULT
));
C
.
SELECTION_FLAG_DEFAULT
));
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
setSubtitles
(
subtitles
).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setSubtitles
(
subtitles
).
build
();
assertThat
(
mediaItem
.
playbackProperties
.
subtitles
).
isEqualTo
(
subtitles
);
assertThat
(
mediaItem
.
playbackProperties
.
subtitles
).
isEqualTo
(
subtitles
);
}
}
@Test
@Test
public
void
builderSetTag_isNullByDefault
()
{
public
void
builderSetTag_isNullByDefault
()
{
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
build
();
assertThat
(
mediaItem
.
playbackProperties
.
tag
).
isNull
();
assertThat
(
mediaItem
.
playbackProperties
.
tag
).
isNull
();
}
}
...
@@ -193,7 +190,7 @@ public class MediaItemTest {
...
@@ -193,7 +190,7 @@ public class MediaItemTest {
public
void
builderSetTag_setsTag
()
{
public
void
builderSetTag_setsTag
()
{
Object
tag
=
new
Object
();
Object
tag
=
new
Object
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
setTag
(
tag
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setTag
(
tag
).
build
();
assertThat
(
mediaItem
.
playbackProperties
.
tag
).
isEqualTo
(
tag
);
assertThat
(
mediaItem
.
playbackProperties
.
tag
).
isEqualTo
(
tag
);
}
}
...
@@ -201,14 +198,14 @@ public class MediaItemTest {
...
@@ -201,14 +198,14 @@ public class MediaItemTest {
@Test
@Test
public
void
builderSetStartPositionMs_setsStartPositionMs
()
{
public
void
builderSetStartPositionMs_setsStartPositionMs
()
{
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
setClipStartPositionMs
(
1000L
).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setClipStartPositionMs
(
1000L
).
build
();
assertThat
(
mediaItem
.
clippingProperties
.
startPositionMs
).
isEqualTo
(
1000L
);
assertThat
(
mediaItem
.
clippingProperties
.
startPositionMs
).
isEqualTo
(
1000L
);
}
}
@Test
@Test
public
void
builderSetStartPositionMs_zeroByDefault
()
{
public
void
builderSetStartPositionMs_zeroByDefault
()
{
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
build
();
assertThat
(
mediaItem
.
clippingProperties
.
startPositionMs
).
isEqualTo
(
0
);
assertThat
(
mediaItem
.
clippingProperties
.
startPositionMs
).
isEqualTo
(
0
);
}
}
...
@@ -223,14 +220,14 @@ public class MediaItemTest {
...
@@ -223,14 +220,14 @@ public class MediaItemTest {
@Test
@Test
public
void
builderSetEndPositionMs_setsEndPositionMs
()
{
public
void
builderSetEndPositionMs_setsEndPositionMs
()
{
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
setClipEndPositionMs
(
1000L
).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setClipEndPositionMs
(
1000L
).
build
();
assertThat
(
mediaItem
.
clippingProperties
.
endPositionMs
).
isEqualTo
(
1000L
);
assertThat
(
mediaItem
.
clippingProperties
.
endPositionMs
).
isEqualTo
(
1000L
);
}
}
@Test
@Test
public
void
builderSetEndPositionMs_timeEndOfSourceByDefault
()
{
public
void
builderSetEndPositionMs_timeEndOfSourceByDefault
()
{
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
build
();
assertThat
(
mediaItem
.
clippingProperties
.
endPositionMs
).
isEqualTo
(
C
.
TIME_END_OF_SOURCE
);
assertThat
(
mediaItem
.
clippingProperties
.
endPositionMs
).
isEqualTo
(
C
.
TIME_END_OF_SOURCE
);
}
}
...
@@ -239,7 +236,7 @@ public class MediaItemTest {
...
@@ -239,7 +236,7 @@ public class MediaItemTest {
public
void
builderSetEndPositionMs_timeEndOfSource_setsEndPositionMs
()
{
public
void
builderSetEndPositionMs_timeEndOfSource_setsEndPositionMs
()
{
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_STRING
)
.
setUri
(
URI_STRING
)
.
setClipEndPositionMs
(
1000
)
.
setClipEndPositionMs
(
1000
)
.
setClipEndPositionMs
(
C
.
TIME_END_OF_SOURCE
)
.
setClipEndPositionMs
(
C
.
TIME_END_OF_SOURCE
)
.
build
();
.
build
();
...
@@ -258,7 +255,7 @@ public class MediaItemTest {
...
@@ -258,7 +255,7 @@ public class MediaItemTest {
public
void
builderSetClippingFlags_setsClippingFlags
()
{
public
void
builderSetClippingFlags_setsClippingFlags
()
{
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_STRING
)
.
setUri
(
URI_STRING
)
.
setClipRelativeToDefaultPosition
(
true
)
.
setClipRelativeToDefaultPosition
(
true
)
.
setClipRelativeToLiveWindow
(
true
)
.
setClipRelativeToLiveWindow
(
true
)
.
setClipStartsAtKeyFrame
(
true
)
.
setClipStartsAtKeyFrame
(
true
)
...
@@ -273,8 +270,7 @@ public class MediaItemTest {
...
@@ -273,8 +270,7 @@ public class MediaItemTest {
public
void
builderSetAdTagUri_setsAdTagUri
()
{
public
void
builderSetAdTagUri_setsAdTagUri
()
{
Uri
adTagUri
=
Uri
.
parse
(
URI_STRING
+
"/ad"
);
Uri
adTagUri
=
Uri
.
parse
(
URI_STRING
+
"/ad"
);
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setAdTagUri
(
adTagUri
).
build
();
new
MediaItem
.
Builder
().
setSourceUri
(
URI_STRING
).
setAdTagUri
(
adTagUri
).
build
();
assertThat
(
mediaItem
.
playbackProperties
.
adTagUri
).
isEqualTo
(
adTagUri
);
assertThat
(
mediaItem
.
playbackProperties
.
adTagUri
).
isEqualTo
(
adTagUri
);
}
}
...
@@ -284,7 +280,7 @@ public class MediaItemTest {
...
@@ -284,7 +280,7 @@ public class MediaItemTest {
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
setTitle
(
"title"
).
build
();
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
setTitle
(
"title"
).
build
();
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_STRING
).
setMediaMetadata
(
mediaMetadata
).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setMediaMetadata
(
mediaMetadata
).
build
();
assertThat
(
mediaItem
.
mediaMetadata
).
isEqualTo
(
mediaMetadata
);
assertThat
(
mediaItem
.
mediaMetadata
).
isEqualTo
(
mediaMetadata
);
}
}
...
@@ -311,7 +307,7 @@ public class MediaItemTest {
...
@@ -311,7 +307,7 @@ public class MediaItemTest {
.
setMediaId
(
"mediaId"
)
.
setMediaId
(
"mediaId"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"title"
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"title"
).
build
())
.
setMimeType
(
MimeTypes
.
APPLICATION_MP4
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MP4
)
.
set
Source
Uri
(
URI_STRING
)
.
setUri
(
URI_STRING
)
.
setStreamKeys
(
Collections
.
singletonList
(
new
StreamKey
(
1
,
0
,
0
)))
.
setStreamKeys
(
Collections
.
singletonList
(
new
StreamKey
(
1
,
0
,
0
)))
.
setSubtitles
(
.
setSubtitles
(
Collections
.
singletonList
(
Collections
.
singletonList
(
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.java
View file @
b22783f8
...
@@ -52,25 +52,24 @@ import java.util.Map;
...
@@ -52,25 +52,24 @@ import java.util.Map;
* factories:
* factories:
*
*
* <ul>
* <ul>
* <li>{@code DashMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#
sourceUri
* <li>{@code DashMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#
uri uri}
*
sourceUri} ends in '.mpd' or if its {@link MediaItem.PlaybackProperties#mimeType mimeType
*
ends in '.mpd' or if its {@link MediaItem.PlaybackProperties#mimeType mimeType field} is
*
field} is
explicitly set to {@link MimeTypes#APPLICATION_MPD} (Requires the <a
* explicitly set to {@link MimeTypes#APPLICATION_MPD} (Requires the <a
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">exoplayer-dash module
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">exoplayer-dash module
* to be added</a> to the app).
* to be added</a> to the app).
* <li>{@code HlsMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#
sourceUri
* <li>{@code HlsMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#
uri uri}
*
sourceUri} ends in '.m3u8' or if its {@link MediaItem.PlaybackProperties#mimeType mimeType
*
ends in '.m3u8' or if its {@link MediaItem.PlaybackProperties#mimeType mimeType field} is
*
field} is
explicitly set to {@link MimeTypes#APPLICATION_M3U8} (Requires the <a
* explicitly set to {@link MimeTypes#APPLICATION_M3U8} (Requires the <a
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">exoplayer-hls module to
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">exoplayer-hls module to
* be added</a> to the app).
* be added</a> to the app).
* <li>{@code SsMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#sourceUri
* <li>{@code SsMediaSource.Factory} if the item's {@link MediaItem.PlaybackProperties#uri uri}
* sourceUri} ends in '.ism', '.ism/Manifest' or if its {@link
* ends in '.ism', '.ism/Manifest' or if its {@link MediaItem.PlaybackProperties#mimeType
* MediaItem.PlaybackProperties#mimeType mimeType field} is explicitly set to {@link
* mimeType field} is explicitly set to {@link MimeTypes#APPLICATION_SS} (Requires the <a
* MimeTypes#APPLICATION_SS} (Requires the <a
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">
* href="https://exoplayer.dev/hello-world.html#add-exoplayer-modules">
* exoplayer-smoothstreaming module to be added</a> to the app).
* exoplayer-smoothstreaming module to be added</a> to the app).
* <li>{@link ProgressiveMediaSource.Factory} serves as a fallback if the item's {@link
* <li>{@link ProgressiveMediaSource.Factory} serves as a fallback if the item's {@link
* MediaItem.PlaybackProperties#
sourceUri sourceUri} doesn't match one of the above. It tries
* MediaItem.PlaybackProperties#
uri uri} doesn't match one of the above. It tries to infer the
*
to infer the
required extractor by using the {@link
* required extractor by using the {@link
* com.google.android.exoplayer2.extractor.DefaultExtractorsFactory}. An {@link
* com.google.android.exoplayer2.extractor.DefaultExtractorsFactory}. An {@link
* UnrecognizedInputFormatException} is thrown if none of the available extractors can read
* UnrecognizedInputFormatException} is thrown if none of the available extractors can read
* the stream.
* the stream.
...
@@ -249,7 +248,7 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
...
@@ -249,7 +248,7 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
@C
.
ContentType
@C
.
ContentType
int
type
=
int
type
=
Util
.
inferContentTypeWithMimeType
(
Util
.
inferContentTypeWithMimeType
(
mediaItem
.
playbackProperties
.
sourceU
ri
,
mediaItem
.
playbackProperties
.
mimeType
);
mediaItem
.
playbackProperties
.
u
ri
,
mediaItem
.
playbackProperties
.
mimeType
);
@Nullable
MediaSourceFactory
mediaSourceFactory
=
mediaSourceFactories
.
get
(
type
);
@Nullable
MediaSourceFactory
mediaSourceFactory
=
mediaSourceFactories
.
get
(
type
);
Assertions
.
checkNotNull
(
Assertions
.
checkNotNull
(
mediaSourceFactory
,
"No suitable media source factory found for content type: "
+
type
);
mediaSourceFactory
,
"No suitable media source factory found for content type: "
+
type
);
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java
View file @
b22783f8
...
@@ -173,7 +173,7 @@ public final class ExtractorMediaSource extends CompositeMediaSource<Void> {
...
@@ -173,7 +173,7 @@ public final class ExtractorMediaSource extends CompositeMediaSource<Void> {
@Deprecated
@Deprecated
@Override
@Override
public
ExtractorMediaSource
createMediaSource
(
Uri
uri
)
{
public
ExtractorMediaSource
createMediaSource
(
Uri
uri
)
{
return
createMediaSource
(
new
MediaItem
.
Builder
().
set
Source
Uri
(
uri
).
build
());
return
createMediaSource
(
new
MediaItem
.
Builder
().
setUri
(
uri
).
build
());
}
}
/**
/**
...
@@ -187,7 +187,7 @@ public final class ExtractorMediaSource extends CompositeMediaSource<Void> {
...
@@ -187,7 +187,7 @@ public final class ExtractorMediaSource extends CompositeMediaSource<Void> {
public
ExtractorMediaSource
createMediaSource
(
MediaItem
mediaItem
)
{
public
ExtractorMediaSource
createMediaSource
(
MediaItem
mediaItem
)
{
Assertions
.
checkNotNull
(
mediaItem
.
playbackProperties
);
Assertions
.
checkNotNull
(
mediaItem
.
playbackProperties
);
return
new
ExtractorMediaSource
(
return
new
ExtractorMediaSource
(
mediaItem
.
playbackProperties
.
sourceU
ri
,
mediaItem
.
playbackProperties
.
u
ri
,
dataSourceFactory
,
dataSourceFactory
,
extractorsFactory
,
extractorsFactory
,
loadErrorHandlingPolicy
,
loadErrorHandlingPolicy
,
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java
View file @
b22783f8
...
@@ -166,7 +166,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
...
@@ -166,7 +166,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
@Deprecated
@Deprecated
@Override
@Override
public
ProgressiveMediaSource
createMediaSource
(
Uri
uri
)
{
public
ProgressiveMediaSource
createMediaSource
(
Uri
uri
)
{
return
createMediaSource
(
new
MediaItem
.
Builder
().
set
Source
Uri
(
uri
).
build
());
return
createMediaSource
(
new
MediaItem
.
Builder
().
setUri
(
uri
).
build
());
}
}
/**
/**
...
@@ -180,7 +180,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
...
@@ -180,7 +180,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
public
ProgressiveMediaSource
createMediaSource
(
MediaItem
mediaItem
)
{
public
ProgressiveMediaSource
createMediaSource
(
MediaItem
mediaItem
)
{
Assertions
.
checkNotNull
(
mediaItem
.
playbackProperties
);
Assertions
.
checkNotNull
(
mediaItem
.
playbackProperties
);
return
new
ProgressiveMediaSource
(
return
new
ProgressiveMediaSource
(
mediaItem
.
playbackProperties
.
sourceU
ri
,
mediaItem
.
playbackProperties
.
u
ri
,
dataSourceFactory
,
dataSourceFactory
,
extractorsFactory
,
extractorsFactory
,
drmSessionManager
,
drmSessionManager
,
...
...
library/core/src/test/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactoryTest.java
View file @
b22783f8
...
@@ -46,7 +46,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -46,7 +46,7 @@ public final class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withoutMimeType_progressiveSource
()
{
public
void
createMediaSource_withoutMimeType_progressiveSource
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -58,7 +58,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -58,7 +58,7 @@ public final class DefaultMediaSourceFactoryTest {
Object
tag
=
new
Object
();
Object
tag
=
new
Object
();
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
).
setTag
(
tag
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setTag
(
tag
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -69,7 +69,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -69,7 +69,7 @@ public final class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withPath_progressiveSource
()
{
public
void
createMediaSource_withPath_progressiveSource
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
+
"/file.mp3"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
+
"/file.mp3"
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -80,7 +80,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -80,7 +80,7 @@ public final class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withNull_usesNonNullDefaults
()
{
public
void
createMediaSource_withNull_usesNonNullDefaults
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
build
();
MediaSource
mediaSource
=
MediaSource
mediaSource
=
defaultMediaSourceFactory
defaultMediaSourceFactory
...
@@ -101,8 +101,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -101,8 +101,7 @@ public final class DefaultMediaSourceFactoryTest {
new
MediaItem
.
Subtitle
(
Uri
.
parse
(
URI_TEXT
),
MimeTypes
.
APPLICATION_TTML
,
"en"
),
new
MediaItem
.
Subtitle
(
Uri
.
parse
(
URI_TEXT
),
MimeTypes
.
APPLICATION_TTML
,
"en"
),
new
MediaItem
.
Subtitle
(
new
MediaItem
.
Subtitle
(
Uri
.
parse
(
URI_TEXT
),
MimeTypes
.
APPLICATION_TTML
,
"de"
,
C
.
SELECTION_FLAG_DEFAULT
));
Uri
.
parse
(
URI_TEXT
),
MimeTypes
.
APPLICATION_TTML
,
"de"
,
C
.
SELECTION_FLAG_DEFAULT
));
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setSubtitles
(
subtitles
).
build
();
new
MediaItem
.
Builder
().
setSourceUri
(
URI_MEDIA
).
setSubtitles
(
subtitles
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -117,7 +116,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -117,7 +116,7 @@ public final class DefaultMediaSourceFactoryTest {
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setTag
(
tag
)
.
setTag
(
tag
)
.
set
Source
Uri
(
URI_MEDIA
)
.
setUri
(
URI_MEDIA
)
.
setSubtitles
(
.
setSubtitles
(
Collections
.
singletonList
(
Collections
.
singletonList
(
new
MediaItem
.
Subtitle
(
Uri
.
parse
(
URI_TEXT
),
MimeTypes
.
APPLICATION_TTML
,
"en"
)))
new
MediaItem
.
Subtitle
(
Uri
.
parse
(
URI_TEXT
),
MimeTypes
.
APPLICATION_TTML
,
"en"
)))
...
@@ -133,7 +132,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -133,7 +132,7 @@ public final class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
).
setClipStartPositionMs
(
1000L
).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setClipStartPositionMs
(
1000L
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -145,7 +144,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -145,7 +144,7 @@ public final class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
).
setClipEndPositionMs
(
1000L
).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setClipEndPositionMs
(
1000L
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -157,10 +156,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -157,10 +156,7 @@ public final class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setClipRelativeToDefaultPosition
(
true
).
build
();
.
setSourceUri
(
URI_MEDIA
)
.
setClipRelativeToDefaultPosition
(
true
)
.
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -173,7 +169,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -173,7 +169,7 @@ public final class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_MEDIA
)
.
setUri
(
URI_MEDIA
)
.
setClipEndPositionMs
(
C
.
TIME_END_OF_SOURCE
)
.
setClipEndPositionMs
(
C
.
TIME_END_OF_SOURCE
)
.
build
();
.
build
();
...
@@ -195,8 +191,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -195,8 +191,7 @@ public final class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withAdTagUri_callsAdsLoader
()
{
public
void
createMediaSource_withAdTagUri_callsAdsLoader
()
{
Context
applicationContext
=
ApplicationProvider
.
getApplicationContext
();
Context
applicationContext
=
ApplicationProvider
.
getApplicationContext
();
Uri
adTagUri
=
Uri
.
parse
(
URI_MEDIA
);
Uri
adTagUri
=
Uri
.
parse
(
URI_MEDIA
);
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setAdTagUri
(
adTagUri
).
build
();
new
MediaItem
.
Builder
().
setSourceUri
(
URI_MEDIA
).
setAdTagUri
(
adTagUri
).
build
();
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
new
DefaultMediaSourceFactory
(
new
DefaultMediaSourceFactory
(
applicationContext
,
applicationContext
,
...
@@ -212,7 +207,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -212,7 +207,7 @@ public final class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withAdTagUriAdsLoaderNull_playsWithoutAdNoException
()
{
public
void
createMediaSource_withAdTagUriAdsLoaderNull_playsWithoutAdNoException
()
{
Context
applicationContext
=
ApplicationProvider
.
getApplicationContext
();
Context
applicationContext
=
ApplicationProvider
.
getApplicationContext
();
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
).
setAdTagUri
(
Uri
.
parse
(
URI_MEDIA
)).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setAdTagUri
(
Uri
.
parse
(
URI_MEDIA
)).
build
();
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
new
DefaultMediaSourceFactory
(
new
DefaultMediaSourceFactory
(
applicationContext
,
applicationContext
,
...
@@ -228,7 +223,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -228,7 +223,7 @@ public final class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withAdTagUriProvidersNull_playsWithoutAdNoException
()
{
public
void
createMediaSource_withAdTagUriProvidersNull_playsWithoutAdNoException
()
{
Context
applicationContext
=
ApplicationProvider
.
getApplicationContext
();
Context
applicationContext
=
ApplicationProvider
.
getApplicationContext
();
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
).
setAdTagUri
(
Uri
.
parse
(
URI_MEDIA
)).
build
();
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setAdTagUri
(
Uri
.
parse
(
URI_MEDIA
)).
build
();
MediaSource
mediaSource
=
MediaSource
mediaSource
=
DefaultMediaSourceFactory
.
newInstance
(
applicationContext
).
createMediaSource
(
mediaItem
);
DefaultMediaSourceFactory
.
newInstance
(
applicationContext
).
createMediaSource
(
mediaItem
);
...
...
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java
View file @
b22783f8
...
@@ -313,7 +313,7 @@ public final class DashMediaSource extends BaseMediaSource {
...
@@ -313,7 +313,7 @@ public final class DashMediaSource extends BaseMediaSource {
@Deprecated
@Deprecated
@Override
@Override
public
DashMediaSource
createMediaSource
(
Uri
uri
)
{
public
DashMediaSource
createMediaSource
(
Uri
uri
)
{
return
createMediaSource
(
new
MediaItem
.
Builder
().
set
Source
Uri
(
uri
).
build
());
return
createMediaSource
(
new
MediaItem
.
Builder
().
setUri
(
uri
).
build
());
}
}
/**
/**
...
@@ -339,7 +339,7 @@ public final class DashMediaSource extends BaseMediaSource {
...
@@ -339,7 +339,7 @@ public final class DashMediaSource extends BaseMediaSource {
}
}
return
new
DashMediaSource
(
return
new
DashMediaSource
(
/* manifest= */
null
,
/* manifest= */
null
,
mediaItem
.
playbackProperties
.
sourceU
ri
,
mediaItem
.
playbackProperties
.
u
ri
,
manifestDataSourceFactory
,
manifestDataSourceFactory
,
manifestParser
,
manifestParser
,
chunkSourceFactory
,
chunkSourceFactory
,
...
...
library/dash/src/test/java/com/google/android/exoplayer2/source/dash/DefaultMediaSourceFactoryTest.java
View file @
b22783f8
...
@@ -38,10 +38,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -38,10 +38,7 @@ public class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setMimeType
(
MimeTypes
.
APPLICATION_MPD
).
build
();
.
setSourceUri
(
URI_MEDIA
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_MEDIA
)
.
setUri
(
URI_MEDIA
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
setMimeType
(
MimeTypes
.
APPLICATION_MPD
)
.
setTag
(
tag
)
.
setTag
(
tag
)
.
build
();
.
build
();
...
@@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withPath_dashSource
()
{
public
void
createMediaSource_withPath_dashSource
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
+
"/file.mpd"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
+
"/file.mpd"
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withNull_usesNonNullDefaults
()
{
public
void
createMediaSource_withNull_usesNonNullDefaults
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
+
"/file.mpd"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
+
"/file.mpd"
).
build
();
MediaSource
mediaSource
=
MediaSource
mediaSource
=
defaultMediaSourceFactory
defaultMediaSourceFactory
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java
View file @
b22783f8
...
@@ -332,7 +332,7 @@ public final class HlsMediaSource extends BaseMediaSource
...
@@ -332,7 +332,7 @@ public final class HlsMediaSource extends BaseMediaSource
@Deprecated
@Deprecated
@Override
@Override
public
HlsMediaSource
createMediaSource
(
Uri
uri
)
{
public
HlsMediaSource
createMediaSource
(
Uri
uri
)
{
return
createMediaSource
(
new
MediaItem
.
Builder
().
set
Source
Uri
(
uri
).
build
());
return
createMediaSource
(
new
MediaItem
.
Builder
().
setUri
(
uri
).
build
());
}
}
/**
/**
...
@@ -355,7 +355,7 @@ public final class HlsMediaSource extends BaseMediaSource
...
@@ -355,7 +355,7 @@ public final class HlsMediaSource extends BaseMediaSource
new
FilteringHlsPlaylistParserFactory
(
playlistParserFactory
,
streamKeys
);
new
FilteringHlsPlaylistParserFactory
(
playlistParserFactory
,
streamKeys
);
}
}
return
new
HlsMediaSource
(
return
new
HlsMediaSource
(
mediaItem
.
playbackProperties
.
sourceU
ri
,
mediaItem
.
playbackProperties
.
u
ri
,
hlsDataSourceFactory
,
hlsDataSourceFactory
,
extractorFactory
,
extractorFactory
,
compositeSequenceableLoaderFactory
,
compositeSequenceableLoaderFactory
,
...
...
library/hls/src/test/java/com/google/android/exoplayer2/source/hls/DefaultMediaSourceFactoryTest.java
View file @
b22783f8
...
@@ -38,10 +38,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -38,10 +38,7 @@ public class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setMimeType
(
MimeTypes
.
APPLICATION_M3U8
).
build
();
.
setSourceUri
(
URI_MEDIA
)
.
setMimeType
(
MimeTypes
.
APPLICATION_M3U8
)
.
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_MEDIA
)
.
setUri
(
URI_MEDIA
)
.
setMimeType
(
MimeTypes
.
APPLICATION_M3U8
)
.
setMimeType
(
MimeTypes
.
APPLICATION_M3U8
)
.
setTag
(
tag
)
.
setTag
(
tag
)
.
build
();
.
build
();
...
@@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withPath_hlsSource
()
{
public
void
createMediaSource_withPath_hlsSource
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
+
"/file.m3u8"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
+
"/file.m3u8"
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withNull_usesNonNullDefaults
()
{
public
void
createMediaSource_withNull_usesNonNullDefaults
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
+
"/file.m3u8"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
+
"/file.m3u8"
).
build
();
MediaSource
mediaSource
=
MediaSource
mediaSource
=
defaultMediaSourceFactory
defaultMediaSourceFactory
...
...
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java
View file @
b22783f8
...
@@ -223,7 +223,7 @@ public final class SsMediaSource extends BaseMediaSource
...
@@ -223,7 +223,7 @@ public final class SsMediaSource extends BaseMediaSource
@Deprecated
@Deprecated
@Override
@Override
public
SsMediaSource
createMediaSource
(
Uri
uri
)
{
public
SsMediaSource
createMediaSource
(
Uri
uri
)
{
return
createMediaSource
(
new
MediaItem
.
Builder
().
set
Source
Uri
(
uri
).
build
());
return
createMediaSource
(
new
MediaItem
.
Builder
().
setUri
(
uri
).
build
());
}
}
/**
/**
...
@@ -307,7 +307,7 @@ public final class SsMediaSource extends BaseMediaSource
...
@@ -307,7 +307,7 @@ public final class SsMediaSource extends BaseMediaSource
}
}
return
new
SsMediaSource
(
return
new
SsMediaSource
(
/* manifest= */
null
,
/* manifest= */
null
,
mediaItem
.
playbackProperties
.
sourceU
ri
,
mediaItem
.
playbackProperties
.
u
ri
,
manifestDataSourceFactory
,
manifestDataSourceFactory
,
manifestParser
,
manifestParser
,
chunkSourceFactory
,
chunkSourceFactory
,
...
...
library/smoothstreaming/src/test/java/com/google/android/exoplayer2/source/smoothstreaming/DefaultMediaSourceFactoryTest.java
View file @
b22783f8
...
@@ -40,10 +40,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -40,10 +40,7 @@ public class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
).
setMimeType
(
MimeTypes
.
APPLICATION_SS
).
build
();
.
setSourceUri
(
URI_MEDIA
)
.
setMimeType
(
MimeTypes
.
APPLICATION_SS
)
.
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
assertThat
(
mediaSource
).
isInstanceOf
(
SsMediaSource
.
class
);
assertThat
(
mediaSource
).
isInstanceOf
(
SsMediaSource
.
class
);
}
}
...
@@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -55,7 +52,7 @@ public class DefaultMediaSourceFactoryTest {
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
MediaItem
mediaItem
=
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
set
Source
Uri
(
URI_MEDIA
)
.
setUri
(
URI_MEDIA
)
.
setMimeType
(
MimeTypes
.
APPLICATION_SS
)
.
setMimeType
(
MimeTypes
.
APPLICATION_SS
)
.
setTag
(
tag
)
.
setTag
(
tag
)
.
build
();
.
build
();
...
@@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -69,7 +66,7 @@ public class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withIsmPath_smoothstreamingSource
()
{
public
void
createMediaSource_withIsmPath_smoothstreamingSource
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
+
"/file.ism"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
+
"/file.ism"
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -80,7 +77,7 @@ public class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withManifestPath_smoothstreamingSource
()
{
public
void
createMediaSource_withManifestPath_smoothstreamingSource
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
+
".ism/Manifest"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
+
".ism/Manifest"
).
build
();
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
MediaSource
mediaSource
=
defaultMediaSourceFactory
.
createMediaSource
(
mediaItem
);
...
@@ -91,7 +88,7 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -91,7 +88,7 @@ public class DefaultMediaSourceFactoryTest {
public
void
createMediaSource_withNull_usesNonNullDefaults
()
{
public
void
createMediaSource_withNull_usesNonNullDefaults
()
{
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
defaultMediaSourceFactory
=
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
DefaultMediaSourceFactory
.
newInstance
(
ApplicationProvider
.
getApplicationContext
());
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
set
Source
Uri
(
URI_MEDIA
+
"/file.ism"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_MEDIA
+
"/file.ism"
).
build
();
MediaSource
mediaSource
=
MediaSource
mediaSource
=
defaultMediaSourceFactory
defaultMediaSourceFactory
...
...
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