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
ee71c838
authored
Oct 06, 2021
by
ibaker
Committed by
Oliver Woodman
Oct 06, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Migrate usages of deprecated Player COMMAND_ constants
PiperOrigin-RevId: 401292817
parent
d5f71a5d
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
93 additions
and
81 deletions
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java
extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java
extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.java
extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/TimelineQueueNavigator.java
library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java
library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java
library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java
extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java
View file @
ee71c838
...
...
@@ -96,7 +96,7 @@ public final class CastPlayer extends BasePlayer {
COMMAND_PLAY_PAUSE
,
COMMAND_PREPARE_STOP
,
COMMAND_SEEK_TO_DEFAULT_POSITION
,
COMMAND_SEEK_TO_
WINDOW
,
COMMAND_SEEK_TO_
MEDIA_ITEM
,
COMMAND_SET_REPEAT_MODE
,
COMMAND_SET_SPEED_AND_PITCH
,
COMMAND_GET_CURRENT_MEDIA_ITEM
,
...
...
extensions/cast/src/test/java/com/google/android/exoplayer2/ext/cast/CastPlayerTest.java
View file @
ee71c838
...
...
@@ -28,13 +28,13 @@ import static com.google.android.exoplayer2.Player.COMMAND_PLAY_PAUSE;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_PREPARE_STOP
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_BACK
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_FORWARD
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_DEFAULT_POSITION
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS_WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SET_DEVICE_VOLUME
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SET_MEDIA_ITEMS_METADATA
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SET_REPEAT_MODE
;
...
...
@@ -1317,12 +1317,12 @@ public class CastPlayerTest {
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_PLAY_PAUSE
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_PREPARE_STOP
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_DEFAULT_POSITION
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
)).
isFalse
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT_
WINDOW
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_
WINDOW
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_TO_
MEDIA_ITEM
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_BACK
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_FORWARD
)).
isTrue
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SET_SPEED_AND_PITCH
)).
isTrue
();
...
...
@@ -1360,7 +1360,7 @@ public class CastPlayerTest {
durationsMs
,
/* positionMs= */
C
.
TIME_UNSET
);
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
)).
isFalse
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_BACK
)).
isFalse
();
assertThat
(
castPlayer
.
isCommandAvailable
(
COMMAND_SEEK_FORWARD
)).
isFalse
();
}
...
...
@@ -1430,12 +1430,14 @@ public class CastPlayerTest {
when
(
mockRemoteMediaClient
.
queueJumpToItem
(
anyInt
(),
anyLong
(),
eq
(
null
)))
.
thenReturn
(
mockPendingResult
);
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Commands
commandsWithSeekToPreviousAndNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_WINDOW
,
COMMAND_SEEK_TO_NEXT_WINDOW
,
COMMAND_SEEK_TO_NEXT
);
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
int
[]
mediaQueueItemIds
=
new
int
[]
{
1
,
2
,
3
,
4
};
List
<
MediaItem
>
mediaItems
=
createMediaItems
(
mediaQueueItemIds
);
...
...
@@ -1462,12 +1464,14 @@ public class CastPlayerTest {
when
(
mockRemoteMediaClient
.
queueJumpToItem
(
anyInt
(),
anyLong
(),
eq
(
null
)))
.
thenReturn
(
mockPendingResult
);
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Commands
commandsWithSeekToPreviousAndNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_WINDOW
,
COMMAND_SEEK_TO_NEXT_WINDOW
,
COMMAND_SEEK_TO_NEXT
);
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
int
[]
mediaQueueItemIds
=
new
int
[]
{
1
,
2
,
3
,
4
};
List
<
MediaItem
>
mediaItems
=
createMediaItems
(
mediaQueueItemIds
);
...
...
@@ -1511,7 +1515,7 @@ public class CastPlayerTest {
public
void
addMediaItem_atTheEnd_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
MediaItem
mediaItem1
=
createMediaItem
(
/* mediaQueueItemId= */
1
);
MediaItem
mediaItem2
=
createMediaItem
(
/* mediaQueueItemId= */
2
);
MediaItem
mediaItem3
=
createMediaItem
(
/* mediaQueueItemId= */
3
);
...
...
@@ -1545,7 +1549,7 @@ public class CastPlayerTest {
public
void
addMediaItem_atTheStart_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
MediaItem
mediaItem1
=
createMediaItem
(
/* mediaQueueItemId= */
1
);
MediaItem
mediaItem2
=
createMediaItem
(
/* mediaQueueItemId= */
2
);
MediaItem
mediaItem3
=
createMediaItem
(
/* mediaQueueItemId= */
3
);
...
...
@@ -1579,7 +1583,7 @@ public class CastPlayerTest {
public
void
removeMediaItem_atTheEnd_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Commands
emptyTimelineCommands
=
createWithDefaultCommands
(
/* isTimelineEmpty= */
true
);
MediaItem
mediaItem1
=
createMediaItem
(
/* mediaQueueItemId= */
1
);
MediaItem
mediaItem2
=
createMediaItem
(
/* mediaQueueItemId= */
2
);
...
...
@@ -1624,7 +1628,7 @@ public class CastPlayerTest {
.
thenReturn
(
mockPendingResult
);
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
Player
.
Commands
emptyTimelineCommands
=
createWithDefaultCommands
(
/* isTimelineEmpty= */
true
);
MediaItem
mediaItem1
=
createMediaItem
(
/* mediaQueueItemId= */
1
);
MediaItem
mediaItem2
=
createMediaItem
(
/* mediaQueueItemId= */
2
);
...
...
@@ -1667,7 +1671,7 @@ public class CastPlayerTest {
public
void
removeMediaItem_current_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
MediaItem
mediaItem1
=
createMediaItem
(
/* mediaQueueItemId= */
1
);
MediaItem
mediaItem2
=
createMediaItem
(
/* mediaQueueItemId= */
2
);
...
...
@@ -1696,7 +1700,9 @@ public class CastPlayerTest {
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToPreviousAndNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_WINDOW
,
COMMAND_SEEK_TO_NEXT_WINDOW
,
COMMAND_SEEK_TO_NEXT
);
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
int
[]
mediaQueueItemIds
=
new
int
[]
{
1
};
List
<
MediaItem
>
mediaItems
=
createMediaItems
(
mediaQueueItemIds
);
...
...
@@ -1821,7 +1827,7 @@ public class CastPlayerTest {
Player
.
Commands
.
Builder
builder
=
new
Player
.
Commands
.
Builder
();
builder
.
addAll
(
CastPlayer
.
PERMANENT_AVAILABLE_COMMANDS
);
if
(!
isTimelineEmpty
)
{
builder
.
add
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
);
builder
.
add
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
);
builder
.
add
(
COMMAND_SEEK_TO_PREVIOUS
);
builder
.
add
(
COMMAND_SEEK_BACK
);
builder
.
add
(
COMMAND_SEEK_FORWARD
);
...
...
extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java
View file @
ee71c838
...
...
@@ -17,10 +17,10 @@ package com.google.android.exoplayer2.ext.media2;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_GET_AUDIO_ATTRIBUTES
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_PLAY_PAUSE
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SET_REPEAT_MODE
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SET_SHUFFLE_MODE
;
import
static
com
.
google
.
android
.
exoplayer2
.
util
.
Util
.
postOrRun
;
...
...
@@ -264,7 +264,7 @@ import java.util.List;
Assertions
.
checkState
(
0
<=
index
&&
index
<
timeline
.
getWindowCount
());
int
windowIndex
=
player
.
getCurrentWindowIndex
();
if
(
windowIndex
!=
index
)
{
return
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_
WINDOW
)
return
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_
MEDIA_ITEM
)
&&
controlDispatcher
.
dispatchSeekTo
(
player
,
index
,
C
.
TIME_UNSET
);
}
return
false
;
...
...
@@ -334,7 +334,7 @@ import java.util.List;
public
boolean
play
()
{
if
(
player
.
getPlaybackState
()
==
Player
.
STATE_ENDED
)
{
boolean
seekHandled
=
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
)
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
)
&&
controlDispatcher
.
dispatchSeekTo
(
player
,
player
.
getCurrentWindowIndex
(),
/* positionMs= */
0
);
if
(!
seekHandled
)
{
...
...
@@ -361,7 +361,7 @@ import java.util.List;
}
public
boolean
seekTo
(
long
position
)
{
return
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
)
return
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
)
&&
controlDispatcher
.
dispatchSeekTo
(
player
,
player
.
getCurrentWindowIndex
(),
position
);
}
...
...
extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/MediaSessionConnector.java
View file @
ee71c838
...
...
@@ -18,7 +18,7 @@ package com.google.android.exoplayer2.ext.mediasession;
import
static
androidx
.
media
.
utils
.
MediaConstants
.
PLAYBACK_STATE_EXTRAS_KEY_MEDIA_ID
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_BACK
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_FORWARD
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
EVENT_IS_PLAYING_CHANGED
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
EVENT_PLAYBACK_PARAMETERS_CHANGED
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
EVENT_PLAYBACK_STATE_CHANGED
;
...
...
@@ -931,7 +931,7 @@ public final class MediaSessionConnector {
}
private
long
buildPlaybackActions
(
Player
player
)
{
boolean
enableSeeking
=
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
);
boolean
enableSeeking
=
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
);
boolean
enableRewind
=
player
.
isCommandAvailable
(
COMMAND_SEEK_BACK
)
&&
controlDispatcher
.
isRewindEnabled
();
boolean
enableFastForward
=
...
...
extensions/mediasession/src/main/java/com/google/android/exoplayer2/ext/mediasession/TimelineQueueNavigator.java
View file @
ee71c838
...
...
@@ -15,9 +15,9 @@
*/
package
com
.
google
.
android
.
exoplayer2
.
ext
.
mediasession
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
;
import
static
java
.
lang
.
Math
.
min
;
import
android.os.Bundle
;
...
...
@@ -102,12 +102,12 @@ public abstract class TimelineQueueNavigator implements MediaSessionConnector.Qu
timeline
.
getWindow
(
player
.
getCurrentWindowIndex
(),
window
);
enableSkipTo
=
timeline
.
getWindowCount
()
>
1
;
enablePrevious
=
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
)
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
)
||
!
window
.
isLive
()
||
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
||
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
enableNext
=
(
window
.
isLive
()
&&
window
.
isDynamic
)
||
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT_
WINDOW
);
||
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
);
}
long
actions
=
0
;
...
...
library/common/src/main/java/com/google/android/exoplayer2/BasePlayer.java
View file @
ee71c838
...
...
@@ -389,20 +389,20 @@ public abstract class BasePlayer implements Player {
return
new
Commands
.
Builder
()
.
addAll
(
permanentAvailableCommands
)
.
addIf
(
COMMAND_SEEK_TO_DEFAULT_POSITION
,
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
,
isCurrentWindowSeekable
()
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
,
hasPreviousWindow
()
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
,
isCurrentWindowSeekable
()
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
,
hasPreviousWindow
()
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_TO_PREVIOUS
,
!
getCurrentTimeline
().
isEmpty
()
&&
(
hasPreviousWindow
()
||
!
isCurrentWindowLive
()
||
isCurrentWindowSeekable
())
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
hasNextWindow
()
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
hasNextWindow
()
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_TO_NEXT
,
!
getCurrentTimeline
().
isEmpty
()
&&
(
hasNextWindow
()
||
(
isCurrentWindowLive
()
&&
isCurrentWindowDynamic
()))
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_TO_
WINDOW
,
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_TO_
MEDIA_ITEM
,
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_BACK
,
isCurrentWindowSeekable
()
&&
!
isPlayingAd
())
.
addIf
(
COMMAND_SEEK_FORWARD
,
isCurrentWindowSeekable
()
&&
!
isPlayingAd
())
.
build
();
...
...
library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java
View file @
ee71c838
...
...
@@ -220,7 +220,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
new
Commands
.
Builder
()
.
addAll
(
permanentAvailableCommands
)
.
add
(
COMMAND_SEEK_TO_DEFAULT_POSITION
)
.
add
(
COMMAND_SEEK_TO_
WINDOW
)
.
add
(
COMMAND_SEEK_TO_
MEDIA_ITEM
)
.
build
();
mediaMetadata
=
MediaMetadata
.
EMPTY
;
playlistMetadata
=
MediaMetadata
.
EMPTY
;
...
...
library/core/src/test/java/com/google/android/exoplayer2/ExoPlayerTest.java
View file @
ee71c838
...
...
@@ -29,13 +29,13 @@ import static com.google.android.exoplayer2.Player.COMMAND_PLAY_PAUSE;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_PREPARE_STOP
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_BACK
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_FORWARD
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_DEFAULT_POSITION
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS_WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SET_DEVICE_VOLUME
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SET_MEDIA_ITEMS_METADATA
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SET_REPEAT_MODE
;
...
...
@@ -8320,12 +8320,12 @@ public final class ExoPlayerTest {
assertThat
(
player
.
isCommandAvailable
(
COMMAND_PLAY_PAUSE
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_PREPARE_STOP
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_DEFAULT_POSITION
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT_
WINDOW
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_
WINDOW
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_
MEDIA_ITEM
)).
isTrue
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_BACK
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_FORWARD
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SET_SPEED_AND_PITCH
)).
isTrue
();
...
...
@@ -8373,12 +8373,12 @@ public final class ExoPlayerTest {
player
.
prepare
();
runUntilPlaybackState
(
player
,
Player
.
STATE_READY
);
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT_
WINDOW
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_NEXT
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_
WINDOW
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_BACK
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_FORWARD
)).
isFalse
();
}
...
...
@@ -8398,7 +8398,7 @@ public final class ExoPlayerTest {
player
.
prepare
();
runUntilPlaybackState
(
player
,
Player
.
STATE_READY
);
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_BACK
)).
isFalse
();
assertThat
(
player
.
isCommandAvailable
(
COMMAND_SEEK_FORWARD
)).
isFalse
();
}
...
...
@@ -8483,12 +8483,14 @@ public final class ExoPlayerTest {
@Test
public
void
seekTo_nextWindow_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Commands
commandsWithSeekToPreviousAndNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_WINDOW
,
COMMAND_SEEK_TO_NEXT_WINDOW
,
COMMAND_SEEK_TO_NEXT
);
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
player
.
addListener
(
mockListener
);
...
...
@@ -8518,12 +8520,14 @@ public final class ExoPlayerTest {
@Test
public
void
seekTo_previousWindow_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Commands
commandsWithSeekToPreviousAndNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_WINDOW
,
COMMAND_SEEK_TO_NEXT_WINDOW
,
COMMAND_SEEK_TO_NEXT
);
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
player
.
addListener
(
mockListener
);
...
...
@@ -8570,25 +8574,25 @@ public final class ExoPlayerTest {
@Test
public
void
automaticWindowTransition_notifiesAvailableCommandsChanged
()
throws
Exception
{
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Commands
commandsWithSeekInCurrentAndToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
,
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
,
COMMAND_SEEK_BACK
,
COMMAND_SEEK_FORWARD
);
Player
.
Commands
commandsWithSeekInCurrentAndToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
,
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
,
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
,
COMMAND_SEEK_BACK
,
COMMAND_SEEK_FORWARD
);
Player
.
Commands
commandsWithSeekAnywhere
=
createWithDefaultCommands
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
,
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
,
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
,
COMMAND_SEEK_BACK
,
COMMAND_SEEK_FORWARD
);
...
...
@@ -8630,7 +8634,7 @@ public final class ExoPlayerTest {
public
void
addMediaSource_atTheEnd_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
player
.
addListener
(
mockListener
);
...
...
@@ -8652,7 +8656,7 @@ public final class ExoPlayerTest {
public
void
addMediaSource_atTheStart_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
player
.
addListener
(
mockListener
);
...
...
@@ -8674,7 +8678,7 @@ public final class ExoPlayerTest {
public
void
removeMediaItem_atTheEnd_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Commands
emptyTimelineCommands
=
createWithDefaultCommands
(
/* isTimelineEmpty */
true
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
...
...
@@ -8702,7 +8706,7 @@ public final class ExoPlayerTest {
public
void
removeMediaItem_atTheStart_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
Player
.
Commands
emptyTimelineCommands
=
createWithDefaultCommands
(
/* isTimelineEmpty */
true
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
...
...
@@ -8731,7 +8735,7 @@ public final class ExoPlayerTest {
public
void
removeMediaItem_current_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
player
.
addListener
(
mockListener
);
...
...
@@ -8751,7 +8755,9 @@ public final class ExoPlayerTest {
Player
.
Commands
defaultCommands
=
createWithDefaultCommands
();
Player
.
Commands
commandsWithSeekToPreviousAndNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_WINDOW
,
COMMAND_SEEK_TO_NEXT_WINDOW
,
COMMAND_SEEK_TO_NEXT
);
COMMAND_SEEK_TO_PREVIOUS_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT_MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
player
.
addListener
(
mockListener
);
...
...
@@ -8783,9 +8789,9 @@ public final class ExoPlayerTest {
@Test
public
void
setShuffleModeEnabled_notifiesAvailableCommandsChanged
()
{
Player
.
Commands
commandsWithSeekToPreviousWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
WINDOW
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_PREVIOUS_
MEDIA_ITEM
);
Player
.
Commands
commandsWithSeekToNextWindow
=
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
WINDOW
,
COMMAND_SEEK_TO_NEXT
);
createWithDefaultCommands
(
COMMAND_SEEK_TO_NEXT_
MEDIA_ITEM
,
COMMAND_SEEK_TO_NEXT
);
Player
.
Listener
mockListener
=
mock
(
Player
.
Listener
.
class
);
ExoPlayer
player
=
new
TestExoPlayerBuilder
(
context
).
build
();
player
.
addListener
(
mockListener
);
...
...
@@ -11223,7 +11229,7 @@ public final class ExoPlayerTest {
COMMAND_PLAY_PAUSE
,
COMMAND_PREPARE_STOP
,
COMMAND_SEEK_TO_DEFAULT_POSITION
,
COMMAND_SEEK_TO_
WINDOW
,
COMMAND_SEEK_TO_
MEDIA_ITEM
,
COMMAND_SET_SPEED_AND_PITCH
,
COMMAND_SET_SHUFFLE_MODE
,
COMMAND_SET_REPEAT_MODE
,
...
...
library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java
View file @
ee71c838
...
...
@@ -17,7 +17,7 @@ package com.google.android.exoplayer2.ui;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_BACK
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_FORWARD
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
EVENT_AVAILABLE_COMMANDS_CHANGED
;
...
...
@@ -880,7 +880,7 @@ public class PlayerControlView extends FrameLayout {
boolean
enableFastForward
=
false
;
boolean
enableNext
=
false
;
if
(
player
!=
null
)
{
enableSeeking
=
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
);
enableSeeking
=
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
);
enablePrevious
=
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS
);
enableRewind
=
player
.
isCommandAvailable
(
COMMAND_SEEK_BACK
)
&&
controlDispatcher
.
isRewindEnabled
();
...
...
library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java
View file @
ee71c838
...
...
@@ -17,7 +17,7 @@ package com.google.android.exoplayer2.ui;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_BACK
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_FORWARD
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
WINDOW
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_NEXT
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
COMMAND_SEEK_TO_PREVIOUS
;
import
static
com
.
google
.
android
.
exoplayer2
.
Player
.
EVENT_AVAILABLE_COMMANDS_CHANGED
;
...
...
@@ -1126,7 +1126,7 @@ public class StyledPlayerControlView extends FrameLayout {
boolean
enableFastForward
=
false
;
boolean
enableNext
=
false
;
if
(
player
!=
null
)
{
enableSeeking
=
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
WINDOW
);
enableSeeking
=
player
.
isCommandAvailable
(
COMMAND_SEEK_IN_CURRENT_
MEDIA_ITEM
);
enablePrevious
=
player
.
isCommandAvailable
(
COMMAND_SEEK_TO_PREVIOUS
);
enableRewind
=
player
.
isCommandAvailable
(
COMMAND_SEEK_BACK
)
&&
controlDispatcher
.
isRewindEnabled
();
...
...
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