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
3f3d1fb5
authored
Apr 26, 2021
by
samrobinson
Committed by
Andrew Lewis
Apr 26, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Change String MediaMetadata.title to CharSequence trackTitle.
PiperOrigin-RevId: 370439509
parent
bc69509a
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
55 additions
and
39 deletions
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/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
library/common/src/main/java/com/google/android/exoplayer2/MediaMetadata.java
library/common/src/main/java/com/google/android/exoplayer2/metadata/id3/TextInformationFrame.java
library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java
library/common/src/test/java/com/google/android/exoplayer2/MediaMetadataTest.java
library/core/src/main/java/com/google/android/exoplayer2/metadata/icy/IcyInfo.java
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/DemoUtil.java
View file @
3f3d1fb5
...
...
@@ -42,19 +42,21 @@ import java.util.List;
samples
.
add
(
new
MediaItem
.
Builder
()
.
setUri
(
"https://storage.googleapis.com/wvmedia/clear/h264/tears/tears.mpd"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Clear DASH: Tears"
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTrackTitle
(
"Clear DASH: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
build
());
samples
.
add
(
new
MediaItem
.
Builder
()
.
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
().
setTrackTitle
(
"Clear HLS: Angel one"
).
build
())
.
setMimeType
(
MIME_TYPE_HLS
)
.
build
());
samples
.
add
(
new
MediaItem
.
Builder
()
.
setUri
(
"https://html5demos.com/assets/dizzy.mp4"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Clear MP4: Dizzy"
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
"Clear MP4: Dizzy"
).
build
())
.
setMimeType
(
MIME_TYPE_VIDEO_MP4
)
.
build
());
...
...
@@ -63,7 +65,7 @@ import java.util.List;
new
MediaItem
.
Builder
()
.
setUri
(
Uri
.
parse
(
"https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd"
))
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cenc: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
"Widevine DASH cenc: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
...
...
@@ -72,7 +74,7 @@ import java.util.List;
new
MediaItem
.
Builder
()
.
setUri
(
"https://storage.googleapis.com/wvmedia/cbc1/h264/tears/tears_aes_cbc1.mpd"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbc1: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
"Widevine DASH cbc1: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
...
...
@@ -81,7 +83,7 @@ import java.util.List;
new
MediaItem
.
Builder
()
.
setUri
(
"https://storage.googleapis.com/wvmedia/cbcs/h264/tears/tears_aes_cbcs.mpd"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"Widevine DASH cbcs: Tears"
).
build
())
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
"Widevine DASH cbcs: Tears"
).
build
())
.
setMimeType
(
MIME_TYPE_DASH
)
.
setDrmUuid
(
C
.
WIDEVINE_UUID
)
.
setDrmLicenseUri
(
"https://proxy.uat.widevine.com/proxy?provider=widevine_test"
)
...
...
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/MainActivity.java
View file @
3f3d1fb5
...
...
@@ -211,7 +211,7 @@ public class MainActivity extends AppCompatActivity
holder
.
item
=
Assertions
.
checkNotNull
(
playerManager
.
getItem
(
position
));
TextView
view
=
holder
.
textView
;
view
.
setText
(
holder
.
item
.
mediaMetadata
.
title
);
view
.
setText
(
holder
.
item
.
mediaMetadata
.
t
rackT
itle
);
// TODO: Solve coloring using the theme's ColorStateList.
view
.
setTextColor
(
ColorUtils
.
setAlphaComponent
(
...
...
@@ -308,7 +308,7 @@ public class MainActivity extends AppCompatActivity
@NonNull
public
View
getView
(
int
position
,
@Nullable
View
convertView
,
@NonNull
ViewGroup
parent
)
{
View
view
=
super
.
getView
(
position
,
convertView
,
parent
);
((
TextView
)
view
).
setText
(
Util
.
castNonNull
(
getItem
(
position
)).
mediaMetadata
.
title
);
((
TextView
)
view
).
setText
(
Util
.
castNonNull
(
getItem
(
position
)).
mediaMetadata
.
t
rackT
itle
);
return
view
;
}
}
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/DownloadTracker.java
View file @
3f3d1fb5
...
...
@@ -363,7 +363,8 @@ public class DownloadTracker {
private
DownloadRequest
buildDownloadRequest
()
{
return
downloadHelper
.
getDownloadRequest
(
Util
.
getUtf8Bytes
(
checkNotNull
(
mediaItem
.
mediaMetadata
.
title
)))
.
getDownloadRequest
(
Util
.
getUtf8Bytes
(
checkNotNull
(
mediaItem
.
mediaMetadata
.
trackTitle
.
toString
())))
.
copyWithKeySetId
(
keySetId
);
}
}
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/IntentUtil.java
View file @
3f3d1fb5
...
...
@@ -90,8 +90,8 @@ public class IntentUtil {
MediaItem
mediaItem
=
mediaItems
.
get
(
0
);
MediaItem
.
PlaybackProperties
playbackProperties
=
checkNotNull
(
mediaItem
.
playbackProperties
);
intent
.
setAction
(
ACTION_VIEW
).
setData
(
mediaItem
.
playbackProperties
.
uri
);
if
(
mediaItem
.
mediaMetadata
.
title
!=
null
)
{
intent
.
putExtra
(
TITLE_EXTRA
,
mediaItem
.
mediaMetadata
.
title
);
if
(
mediaItem
.
mediaMetadata
.
t
rackT
itle
!=
null
)
{
intent
.
putExtra
(
TITLE_EXTRA
,
mediaItem
.
mediaMetadata
.
t
rackT
itle
);
}
addPlaybackPropertiesToIntent
(
playbackProperties
,
intent
,
/* extrasKeySuffix= */
""
);
addClippingPropertiesToIntent
(
...
...
@@ -106,8 +106,8 @@ public class IntentUtil {
addPlaybackPropertiesToIntent
(
playbackProperties
,
intent
,
/* extrasKeySuffix= */
"_"
+
i
);
addClippingPropertiesToIntent
(
mediaItem
.
clippingProperties
,
intent
,
/* extrasKeySuffix= */
"_"
+
i
);
if
(
mediaItem
.
mediaMetadata
.
title
!=
null
)
{
intent
.
putExtra
(
TITLE_EXTRA
+
(
"_"
+
i
),
mediaItem
.
mediaMetadata
.
title
);
if
(
mediaItem
.
mediaMetadata
.
t
rackT
itle
!=
null
)
{
intent
.
putExtra
(
TITLE_EXTRA
+
(
"_"
+
i
),
mediaItem
.
mediaMetadata
.
t
rackT
itle
);
}
}
}
...
...
@@ -121,7 +121,7 @@ public class IntentUtil {
new
MediaItem
.
Builder
()
.
setUri
(
uri
)
.
setMimeType
(
mimeType
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
title
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
title
).
build
())
.
setAdTagUri
(
intent
.
getStringExtra
(
AD_TAG_URI_EXTRA
+
extrasKeySuffix
))
.
setSubtitles
(
createSubtitlesFromIntent
(
intent
,
extrasKeySuffix
))
.
setClipStartPositionMs
(
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/SampleChooserActivity.java
View file @
3f3d1fb5
...
...
@@ -433,7 +433,7 @@ public class SampleChooserActivity extends AppCompatActivity
Util
.
getAdaptiveMimeTypeForContentType
(
Util
.
inferContentType
(
uri
,
extension
));
mediaItem
.
setUri
(
uri
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
title
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
title
).
build
())
.
setMimeType
(
adaptiveMimeType
);
if
(
subtitleUri
!=
null
)
{
MediaItem
.
Subtitle
subtitle
=
...
...
library/common/src/main/java/com/google/android/exoplayer2/MediaMetadata.java
View file @
3f3d1fb5
...
...
@@ -30,17 +30,24 @@ public final class MediaMetadata implements Bundleable {
/** A builder for {@link MediaMetadata} instances. */
public
static
final
class
Builder
{
@Nullable
private
String
t
itle
;
@Nullable
private
CharSequence
trackT
itle
;
public
Builder
()
{}
private
Builder
(
MediaMetadata
mediaMetadata
)
{
this
.
t
itle
=
mediaMetadata
.
t
itle
;
this
.
t
rackTitle
=
mediaMetadata
.
trackT
itle
;
}
/** Sets the optional title. */
/** @deprecated Use {@link #setTrackTitle(CharSequence)} instead. */
@Deprecated
public
Builder
setTitle
(
@Nullable
String
title
)
{
this
.
title
=
title
;
this
.
trackTitle
=
title
;
return
this
;
}
/** Sets the optional track title. */
public
Builder
setTrackTitle
(
@Nullable
CharSequence
trackTitle
)
{
this
.
trackTitle
=
trackTitle
;
return
this
;
}
...
...
@@ -70,11 +77,15 @@ public final class MediaMetadata implements Bundleable {
/** Empty {@link MediaMetadata}. */
public
static
final
MediaMetadata
EMPTY
=
new
MediaMetadata
.
Builder
().
build
();
/** Optional title. */
@Nullable
public
final
String
title
;
/** @deprecated Use {@link #trackTitle} instead. */
@Deprecated
@Nullable
public
final
String
title
;
/** Optional track title. */
@Nullable
public
final
CharSequence
trackTitle
;
private
MediaMetadata
(
Builder
builder
)
{
this
.
title
=
builder
.
title
;
this
.
title
=
builder
.
trackTitle
!=
null
?
builder
.
trackTitle
.
toString
()
:
null
;
this
.
trackTitle
=
builder
.
trackTitle
;
}
/** Returns a new {@link Builder} instance with the current {@link MediaMetadata} fields. */
...
...
@@ -92,34 +103,36 @@ public final class MediaMetadata implements Bundleable {
}
MediaMetadata
other
=
(
MediaMetadata
)
obj
;
return
Util
.
areEqual
(
t
itle
,
other
.
t
itle
);
return
Util
.
areEqual
(
t
rackTitle
,
other
.
trackT
itle
);
}
@Override
public
int
hashCode
()
{
return
t
itle
==
null
?
0
:
t
itle
.
hashCode
();
return
t
rackTitle
==
null
?
0
:
trackT
itle
.
hashCode
();
}
// Bundleable implementation.
@Documented
@Retention
(
RetentionPolicy
.
SOURCE
)
@IntDef
({
FIELD_TITLE
})
@IntDef
({
FIELD_T
RACK_T
ITLE
})
private
@interface
FieldNumber
{}
private
static
final
int
FIELD_TITLE
=
0
;
private
static
final
int
FIELD_T
RACK_T
ITLE
=
0
;
@Override
public
Bundle
toBundle
()
{
Bundle
bundle
=
new
Bundle
();
bundle
.
put
String
(
keyForField
(
FIELD_TITLE
),
t
itle
);
bundle
.
put
CharSequence
(
keyForField
(
FIELD_TRACK_TITLE
),
trackT
itle
);
return
bundle
;
}
/** Object that can restore {@link MediaMetadata} from a {@link Bundle}. */
public
static
final
Creator
<
MediaMetadata
>
CREATOR
=
bundle
->
new
MediaMetadata
.
Builder
().
setTitle
(
bundle
.
getString
(
keyForField
(
FIELD_TITLE
))).
build
();
new
MediaMetadata
.
Builder
()
.
setTrackTitle
(
bundle
.
getCharSequence
(
keyForField
(
FIELD_TRACK_TITLE
)))
.
build
();
private
static
String
keyForField
(
@FieldNumber
int
field
)
{
return
Integer
.
toString
(
field
,
Character
.
MAX_RADIX
);
...
...
library/common/src/main/java/com/google/android/exoplayer2/metadata/id3/TextInformationFrame.java
View file @
3f3d1fb5
...
...
@@ -46,7 +46,7 @@ public final class TextInformationFrame extends Id3Frame {
switch
(
id
)
{
case
"TT2"
:
case
"TIT2"
:
builder
.
setTitle
(
value
);
builder
.
setT
rackT
itle
(
value
);
break
;
default
:
break
;
...
...
library/common/src/test/java/com/google/android/exoplayer2/MediaItemTest.java
View file @
3f3d1fb5
...
...
@@ -299,7 +299,7 @@ public class MediaItemTest {
@Test
public
void
builderSetMediaMetadata_setsMetadata
()
{
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
setTitle
(
"title"
).
build
();
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
"title"
).
build
();
MediaItem
mediaItem
=
new
MediaItem
.
Builder
().
setUri
(
URI_STRING
).
setMediaMetadata
(
mediaMetadata
).
build
();
...
...
@@ -368,7 +368,7 @@ public class MediaItemTest {
.
setDrmSessionForClearTypes
(
Collections
.
singletonList
(
C
.
TRACK_TYPE_AUDIO
))
.
setDrmKeySetId
(
new
byte
[]
{
1
,
2
,
3
})
.
setMediaId
(
"mediaId"
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"title"
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
"title"
).
build
())
.
setMimeType
(
MimeTypes
.
APPLICATION_MP4
)
.
setUri
(
URI_STRING
)
.
setStreamKeys
(
Collections
.
singletonList
(
new
StreamKey
(
1
,
0
,
0
)))
...
...
@@ -404,7 +404,7 @@ public class MediaItemTest {
.
setLiveMaxOffsetMs
(
4_444
)
.
setLiveMinPlaybackSpeed
(.
9
f
)
.
setLiveMaxPlaybackSpeed
(
1.1f
)
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setTitle
(
"title"
).
build
())
.
setMediaMetadata
(
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
"title"
).
build
())
.
setClipStartPositionMs
(
100
)
.
setClipEndPositionMs
(
1_000
)
.
setClipRelativeToDefaultPosition
(
true
)
...
...
library/common/src/test/java/com/google/android/exoplayer2/MediaMetadataTest.java
View file @
3f3d1fb5
...
...
@@ -31,21 +31,21 @@ public class MediaMetadataTest {
public
void
builder_minimal_correctDefaults
()
{
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
build
();
assertThat
(
mediaMetadata
.
title
).
isNull
();
assertThat
(
mediaMetadata
.
t
rackT
itle
).
isNull
();
}
@Test
public
void
builderSet
Title_sets
Title
()
{
public
void
builderSet
sTrackTitle_setsTrack
Title
()
{
String
title
=
"title"
;
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
setTitle
(
title
).
build
();
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
title
).
build
();
assertThat
(
mediaMetadata
.
t
itle
).
isEqualTo
(
title
);
assertThat
(
mediaMetadata
.
t
rackTitle
.
toString
()
).
isEqualTo
(
title
);
}
@Test
public
void
roundTripViaBundle_yieldsEqualInstance
()
{
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
setTitle
(
"title"
).
build
();
MediaMetadata
mediaMetadata
=
new
MediaMetadata
.
Builder
().
setT
rackT
itle
(
"title"
).
build
();
assertThat
(
MediaMetadata
.
CREATOR
.
fromBundle
(
mediaMetadata
.
toBundle
())).
isEqualTo
(
mediaMetadata
);
}
...
...
@@ -58,6 +58,6 @@ public class MediaMetadataTest {
MediaMetadata
.
Builder
builder
=
MediaMetadata
.
EMPTY
.
buildUpon
();
entry
.
populateMediaMetadata
(
builder
);
assertThat
(
builder
.
build
().
t
itle
).
isEqualTo
(
title
);
assertThat
(
builder
.
build
().
t
rackTitle
.
toString
()
).
isEqualTo
(
title
);
}
}
library/core/src/main/java/com/google/android/exoplayer2/metadata/icy/IcyInfo.java
View file @
3f3d1fb5
...
...
@@ -56,7 +56,7 @@ public final class IcyInfo implements Metadata.Entry {
@Override
public
void
populateMediaMetadata
(
MediaMetadata
.
Builder
builder
)
{
if
(
title
!=
null
)
{
builder
.
setTitle
(
title
);
builder
.
setT
rackT
itle
(
title
);
}
}
...
...
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