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
7aaba1ff
authored
Jun 28, 2021
by
olly
Committed by
Oliver Woodman
Jun 30, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Migrate usage of Player.EventListener to Player.Listener
PiperOrigin-RevId: 381837274
parent
ea99c3fa
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
98 additions
and
113 deletions
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/PlayerManager.java
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/AdTagLoader.java
extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java
extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java
extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java
library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java
demos/cast/src/main/java/com/google/android/exoplayer2/castdemo/PlayerManager.java
View file @
7aaba1ff
...
@@ -19,11 +19,11 @@ import android.content.Context;
...
@@ -19,11 +19,11 @@ import android.content.Context;
import
android.view.KeyEvent
;
import
android.view.KeyEvent
;
import
android.view.View
;
import
android.view.View
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.Player
;
import
com.google.android.exoplayer2.Player
;
import
com.google.android.exoplayer2.Player.DiscontinuityReason
;
import
com.google.android.exoplayer2.Player.DiscontinuityReason
;
import
com.google.android.exoplayer2.Player.EventListener
;
import
com.google.android.exoplayer2.Player.TimelineChangeReason
;
import
com.google.android.exoplayer2.Player.TimelineChangeReason
;
import
com.google.android.exoplayer2.SimpleExoPlayer
;
import
com.google.android.exoplayer2.SimpleExoPlayer
;
import
com.google.android.exoplayer2.Timeline
;
import
com.google.android.exoplayer2.Timeline
;
...
@@ -40,7 +40,7 @@ import com.google.android.gms.cast.framework.CastContext;
...
@@ -40,7 +40,7 @@ import com.google.android.gms.cast.framework.CastContext;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
/** Manages players and an internal media queue for the demo app. */
/** Manages players and an internal media queue for the demo app. */
/* package */
class
PlayerManager
implements
Event
Listener
,
SessionAvailabilityListener
{
/* package */
class
PlayerManager
implements
Player
.
Listener
,
SessionAvailabilityListener
{
/** Listener for events. */
/** Listener for events. */
interface
Listener
{
interface
Listener
{
...
@@ -221,7 +221,7 @@ import java.util.ArrayList;
...
@@ -221,7 +221,7 @@ import java.util.ArrayList;
exoPlayer
.
release
();
exoPlayer
.
release
();
}
}
// Player.
Event
Listener implementation.
// Player.Listener implementation.
@Override
@Override
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
...
@@ -229,7 +229,10 @@ import java.util.ArrayList;
...
@@ -229,7 +229,10 @@ import java.util.ArrayList;
}
}
@Override
@Override
public
void
onPositionDiscontinuity
(
@DiscontinuityReason
int
reason
)
{
public
void
onPositionDiscontinuity
(
Player
.
PositionInfo
oldPosition
,
Player
.
PositionInfo
newPosition
,
@DiscontinuityReason
int
reason
)
{
updateCurrentItemIndex
();
updateCurrentItemIndex
();
}
}
...
@@ -242,6 +245,7 @@ import java.util.ArrayList;
...
@@ -242,6 +245,7 @@ import java.util.ArrayList;
public
void
onTracksChanged
(
public
void
onTracksChanged
(
@NonNull
TrackGroupArray
trackGroups
,
@NonNull
TrackSelectionArray
trackSelections
)
{
@NonNull
TrackGroupArray
trackGroups
,
@NonNull
TrackSelectionArray
trackSelections
)
{
if
(
currentPlayer
==
exoPlayer
&&
trackGroups
!=
lastSeenTrackGroupArray
)
{
if
(
currentPlayer
==
exoPlayer
&&
trackGroups
!=
lastSeenTrackGroupArray
)
{
@Nullable
MappingTrackSelector
.
MappedTrackInfo
mappedTrackInfo
=
MappingTrackSelector
.
MappedTrackInfo
mappedTrackInfo
=
trackSelector
.
getCurrentMappedTrackInfo
();
trackSelector
.
getCurrentMappedTrackInfo
();
if
(
mappedTrackInfo
!=
null
)
{
if
(
mappedTrackInfo
!=
null
)
{
...
...
demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java
View file @
7aaba1ff
...
@@ -412,7 +412,7 @@ public class PlayerActivity extends AppCompatActivity
...
@@ -412,7 +412,7 @@ public class PlayerActivity extends AppCompatActivity
Toast
.
makeText
(
getApplicationContext
(),
message
,
Toast
.
LENGTH_LONG
).
show
();
Toast
.
makeText
(
getApplicationContext
(),
message
,
Toast
.
LENGTH_LONG
).
show
();
}
}
private
class
PlayerEventListener
implements
Player
.
Event
Listener
{
private
class
PlayerEventListener
implements
Player
.
Listener
{
@Override
@Override
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
...
...
extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/AdTagLoader.java
View file @
7aaba1ff
...
@@ -447,7 +447,7 @@ import java.util.Map;
...
@@ -447,7 +447,7 @@ import java.util.Map;
}
}
}
}
// Player.
Event
Listener implementation.
// Player.Listener implementation.
@Override
@Override
public
void
onTimelineChanged
(
Timeline
timeline
,
@Player
.
TimelineChangeReason
int
reason
)
{
public
void
onTimelineChanged
(
Timeline
timeline
,
@Player
.
TimelineChangeReason
int
reason
)
{
...
...
extensions/leanback/src/main/java/com/google/android/exoplayer2/ext/leanback/LeanbackPlayerAdapter.java
View file @
7aaba1ff
...
@@ -37,6 +37,7 @@ import com.google.android.exoplayer2.Player.TimelineChangeReason;
...
@@ -37,6 +37,7 @@ import com.google.android.exoplayer2.Player.TimelineChangeReason;
import
com.google.android.exoplayer2.Timeline
;
import
com.google.android.exoplayer2.Timeline
;
import
com.google.android.exoplayer2.util.ErrorMessageProvider
;
import
com.google.android.exoplayer2.util.ErrorMessageProvider
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.video.VideoSize
;
/** Leanback {@code PlayerAdapter} implementation for {@link Player}. */
/** Leanback {@code PlayerAdapter} implementation for {@link Player}. */
public
final
class
LeanbackPlayerAdapter
extends
PlayerAdapter
implements
Runnable
{
public
final
class
LeanbackPlayerAdapter
extends
PlayerAdapter
implements
Runnable
{
...
@@ -247,7 +248,7 @@ public final class LeanbackPlayerAdapter extends PlayerAdapter implements Runnab
...
@@ -247,7 +248,7 @@ public final class LeanbackPlayerAdapter extends PlayerAdapter implements Runnab
setVideoSurface
(
null
);
setVideoSurface
(
null
);
}
}
// Player.
Event
Listener implementation.
// Player.Listener implementation.
@Override
@Override
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
...
@@ -290,21 +291,13 @@ public final class LeanbackPlayerAdapter extends PlayerAdapter implements Runnab
...
@@ -290,21 +291,13 @@ public final class LeanbackPlayerAdapter extends PlayerAdapter implements Runnab
callback
.
onBufferedPositionChanged
(
LeanbackPlayerAdapter
.
this
);
callback
.
onBufferedPositionChanged
(
LeanbackPlayerAdapter
.
this
);
}
}
// VideoListener implementation.
@Override
@Override
public
void
onVideoSizeChanged
(
public
void
onVideoSizeChanged
(
VideoSize
videoSize
)
{
int
width
,
int
height
,
int
unappliedRotationDegrees
,
float
pixelWidthHeightRatio
)
{
// There's no way to pass pixelWidthHeightRatio to leanback, so we scale the width that we
// There's no way to pass pixelWidthHeightRatio to leanback, so we scale the width that we
// pass to take it into account. This is necessary to ensure that leanback uses the correct
// pass to take it into account. This is necessary to ensure that leanback uses the correct
// aspect ratio when playing content with non-square pixels.
// aspect ratio when playing content with non-square pixels.
int
scaledWidth
=
Math
.
round
(
width
*
pixelWidthHeightRatio
);
int
scaledWidth
=
Math
.
round
(
videoSize
.
width
*
videoSize
.
pixelWidthHeightRatio
);
getCallback
().
onVideoSizeChanged
(
LeanbackPlayerAdapter
.
this
,
scaledWidth
,
height
);
getCallback
().
onVideoSizeChanged
(
LeanbackPlayerAdapter
.
this
,
scaledWidth
,
videoSize
.
height
);
}
@Override
public
void
onRenderedFirstFrame
()
{
// Do nothing.
}
}
}
}
}
}
extensions/media2/src/androidTest/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnectorTest.java
View file @
7aaba1ff
...
@@ -1095,7 +1095,7 @@ public class SessionPlayerConnectorTest {
...
@@ -1095,7 +1095,7 @@ public class SessionPlayerConnectorTest {
.
runOnMainSync
(
.
runOnMainSync
(
()
->
()
->
simpleExoPlayer
.
addListener
(
simpleExoPlayer
.
addListener
(
new
Player
.
Event
Listener
()
{
new
Player
.
Listener
()
{
@Override
@Override
public
void
onPlayWhenReadyChanged
(
boolean
playWhenReady
,
int
reason
)
{
public
void
onPlayWhenReadyChanged
(
boolean
playWhenReady
,
int
reason
)
{
if
(
playWhenReady
)
{
if
(
playWhenReady
)
{
...
...
extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/PlayerWrapper.java
View file @
7aaba1ff
...
@@ -564,8 +564,6 @@ import java.util.List;
...
@@ -564,8 +564,6 @@ import java.util.List;
private
final
class
ComponentListener
implements
Player
.
Listener
{
private
final
class
ComponentListener
implements
Player
.
Listener
{
// Player.EventListener implementation.
@Override
@Override
public
void
onPlayWhenReadyChanged
(
boolean
playWhenReady
,
int
reason
)
{
public
void
onPlayWhenReadyChanged
(
boolean
playWhenReady
,
int
reason
)
{
updateSessionPlayerState
();
updateSessionPlayerState
();
...
@@ -616,8 +614,6 @@ import java.util.List;
...
@@ -616,8 +614,6 @@ import java.util.List;
listener
.
onPlaylistChanged
();
listener
.
onPlaylistChanged
();
}
}
// AudioListener implementation.
@Override
@Override
public
void
onAudioAttributesChanged
(
AudioAttributes
audioAttributes
)
{
public
void
onAudioAttributesChanged
(
AudioAttributes
audioAttributes
)
{
listener
.
onAudioAttributesChanged
(
Utils
.
getAudioAttributesCompat
(
audioAttributes
));
listener
.
onAudioAttributesChanged
(
Utils
.
getAudioAttributesCompat
(
audioAttributes
));
...
...
library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java
View file @
7aaba1ff
...
@@ -182,21 +182,6 @@ public class AnalyticsCollector
...
@@ -182,21 +182,6 @@ public class AnalyticsCollector
}
}
}
}
// MetadataOutput events.
/**
* Called when there is metadata associated with current playback time.
*
* @param metadata The metadata.
*/
public
final
void
onMetadata
(
Metadata
metadata
)
{
EventTime
eventTime
=
generateCurrentPlayerMediaPeriodEventTime
();
sendEvent
(
eventTime
,
AnalyticsListener
.
EVENT_METADATA
,
listener
->
listener
.
onMetadata
(
eventTime
,
metadata
));
}
// AudioRendererEventListener implementation.
// AudioRendererEventListener implementation.
@SuppressWarnings
(
"deprecation"
)
// Calling deprecated listener method.
@SuppressWarnings
(
"deprecation"
)
// Calling deprecated listener method.
...
@@ -574,9 +559,9 @@ public class AnalyticsCollector
...
@@ -574,9 +559,9 @@ public class AnalyticsCollector
listener
->
listener
.
onDownstreamFormatChanged
(
eventTime
,
mediaLoadData
));
listener
->
listener
.
onDownstreamFormatChanged
(
eventTime
,
mediaLoadData
));
}
}
// Player.
Event
Listener implementation.
// Player.Listener implementation.
// TODO: Use Player.
Event
Listener.onEvents to know when a set of simultaneous callbacks finished.
// TODO: Use Player.Listener.onEvents to know when a set of simultaneous callbacks finished.
// This helps to assign exactly the same EventTime to all of them instead of having slightly
// This helps to assign exactly the same EventTime to all of them instead of having slightly
// different real times.
// different real times.
...
@@ -710,7 +695,7 @@ public class AnalyticsCollector
...
@@ -710,7 +695,7 @@ public class AnalyticsCollector
@Override
@Override
public
final
void
onPlayerError
(
PlaybackException
error
)
{
public
final
void
onPlayerError
(
PlaybackException
error
)
{
EventTime
eventTime
=
null
;
@Nullable
EventTime
eventTime
=
null
;
if
(
error
instanceof
ExoPlaybackException
)
{
if
(
error
instanceof
ExoPlaybackException
)
{
ExoPlaybackException
exoError
=
(
ExoPlaybackException
)
error
;
ExoPlaybackException
exoError
=
(
ExoPlaybackException
)
error
;
if
(
exoError
.
mediaPeriodId
!=
null
)
{
if
(
exoError
.
mediaPeriodId
!=
null
)
{
...
@@ -793,6 +778,15 @@ public class AnalyticsCollector
...
@@ -793,6 +778,15 @@ public class AnalyticsCollector
listener
->
listener
.
onPlaylistMediaMetadataChanged
(
eventTime
,
playlistMediaMetadata
));
listener
->
listener
.
onPlaylistMediaMetadataChanged
(
eventTime
,
playlistMediaMetadata
));
}
}
@Override
public
final
void
onMetadata
(
Metadata
metadata
)
{
EventTime
eventTime
=
generateCurrentPlayerMediaPeriodEventTime
();
sendEvent
(
eventTime
,
AnalyticsListener
.
EVENT_METADATA
,
listener
->
listener
.
onMetadata
(
eventTime
,
metadata
));
}
@SuppressWarnings
(
"deprecation"
)
// Implementing and calling deprecated listener method.
@SuppressWarnings
(
"deprecation"
)
// Implementing and calling deprecated listener method.
@Override
@Override
public
final
void
onSeekProcessed
()
{
public
final
void
onSeekProcessed
()
{
...
@@ -801,7 +795,7 @@ public class AnalyticsCollector
...
@@ -801,7 +795,7 @@ public class AnalyticsCollector
eventTime
,
/* eventFlag= */
C
.
INDEX_UNSET
,
listener
->
listener
.
onSeekProcessed
(
eventTime
));
eventTime
,
/* eventFlag= */
C
.
INDEX_UNSET
,
listener
->
listener
.
onSeekProcessed
(
eventTime
));
}
}
// BandwidthMeter.Listener implementation.
// BandwidthMeter.
Event
Listener implementation.
@Override
@Override
public
final
void
onBandwidthSample
(
int
elapsedMs
,
long
bytes
,
long
bitrate
)
{
public
final
void
onBandwidthSample
(
int
elapsedMs
,
long
bytes
,
long
bitrate
)
{
...
@@ -812,7 +806,7 @@ public class AnalyticsCollector
...
@@ -812,7 +806,7 @@ public class AnalyticsCollector
listener
->
listener
.
onBandwidthEstimate
(
eventTime
,
elapsedMs
,
bytes
,
bitrate
));
listener
->
listener
.
onBandwidthEstimate
(
eventTime
,
elapsedMs
,
bytes
,
bitrate
));
}
}
// D
efaultDrmSessionManager.
EventListener implementation.
// D
rmSession
EventListener implementation.
@Override
@Override
@SuppressWarnings
(
"deprecation"
)
// Calls deprecated listener method.
@SuppressWarnings
(
"deprecation"
)
// Calls deprecated listener method.
...
@@ -874,6 +868,8 @@ public class AnalyticsCollector
...
@@ -874,6 +868,8 @@ public class AnalyticsCollector
listener
->
listener
.
onDrmSessionReleased
(
eventTime
));
listener
->
listener
.
onDrmSessionReleased
(
eventTime
));
}
}
// Internal methods.
/**
/**
* Sends an event to registered listeners.
* Sends an event to registered listeners.
*
*
...
@@ -936,8 +932,6 @@ public class AnalyticsCollector
...
@@ -936,8 +932,6 @@ public class AnalyticsCollector
player
.
getTotalBufferedDuration
());
player
.
getTotalBufferedDuration
());
}
}
// Internal methods.
private
EventTime
generateEventTime
(
@Nullable
MediaPeriodId
mediaPeriodId
)
{
private
EventTime
generateEventTime
(
@Nullable
MediaPeriodId
mediaPeriodId
)
{
checkNotNull
(
player
);
checkNotNull
(
player
);
@Nullable
@Nullable
...
...
library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java
View file @
7aaba1ff
...
@@ -1278,30 +1278,7 @@ public class PlayerControlView extends FrameLayout {
...
@@ -1278,30 +1278,7 @@ public class PlayerControlView extends FrameLayout {
}
}
private
final
class
ComponentListener
private
final
class
ComponentListener
implements
Player
.
EventListener
,
TimeBar
.
OnScrubListener
,
OnClickListener
{
implements
Player
.
Listener
,
TimeBar
.
OnScrubListener
,
OnClickListener
{
@Override
public
void
onScrubStart
(
TimeBar
timeBar
,
long
position
)
{
scrubbing
=
true
;
if
(
positionView
!=
null
)
{
positionView
.
setText
(
Util
.
getStringForTime
(
formatBuilder
,
formatter
,
position
));
}
}
@Override
public
void
onScrubMove
(
TimeBar
timeBar
,
long
position
)
{
if
(
positionView
!=
null
)
{
positionView
.
setText
(
Util
.
getStringForTime
(
formatBuilder
,
formatter
,
position
));
}
}
@Override
public
void
onScrubStop
(
TimeBar
timeBar
,
long
position
,
boolean
canceled
)
{
scrubbing
=
false
;
if
(!
canceled
&&
player
!=
null
)
{
seekToTimeBarPosition
(
player
,
position
);
}
}
@Override
@Override
public
void
onEvents
(
Player
player
,
Events
events
)
{
public
void
onEvents
(
Player
player
,
Events
events
)
{
...
@@ -1331,6 +1308,29 @@ public class PlayerControlView extends FrameLayout {
...
@@ -1331,6 +1308,29 @@ public class PlayerControlView extends FrameLayout {
}
}
@Override
@Override
public
void
onScrubStart
(
TimeBar
timeBar
,
long
position
)
{
scrubbing
=
true
;
if
(
positionView
!=
null
)
{
positionView
.
setText
(
Util
.
getStringForTime
(
formatBuilder
,
formatter
,
position
));
}
}
@Override
public
void
onScrubMove
(
TimeBar
timeBar
,
long
position
)
{
if
(
positionView
!=
null
)
{
positionView
.
setText
(
Util
.
getStringForTime
(
formatBuilder
,
formatter
,
position
));
}
}
@Override
public
void
onScrubStop
(
TimeBar
timeBar
,
long
position
,
boolean
canceled
)
{
scrubbing
=
false
;
if
(!
canceled
&&
player
!=
null
)
{
seekToTimeBarPosition
(
player
,
position
);
}
}
@Override
public
void
onClick
(
View
view
)
{
public
void
onClick
(
View
view
)
{
Player
player
=
PlayerControlView
.
this
.
player
;
Player
player
=
PlayerControlView
.
this
.
player
;
if
(
player
==
null
)
{
if
(
player
==
null
)
{
...
...
library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java
View file @
7aaba1ff
...
@@ -640,7 +640,7 @@ public class PlayerNotificationManager {
...
@@ -640,7 +640,7 @@ public class PlayerNotificationManager {
private
final
Handler
mainHandler
;
private
final
Handler
mainHandler
;
private
final
NotificationManagerCompat
notificationManager
;
private
final
NotificationManagerCompat
notificationManager
;
private
final
IntentFilter
intentFilter
;
private
final
IntentFilter
intentFilter
;
private
final
Player
.
Event
Listener
playerListener
;
private
final
Player
.
Listener
playerListener
;
private
final
NotificationBroadcastReceiver
notificationBroadcastReceiver
;
private
final
NotificationBroadcastReceiver
notificationBroadcastReceiver
;
private
final
Map
<
String
,
NotificationCompat
.
Action
>
playbackActions
;
private
final
Map
<
String
,
NotificationCompat
.
Action
>
playbackActions
;
private
final
Map
<
String
,
NotificationCompat
.
Action
>
customActions
;
private
final
Map
<
String
,
NotificationCompat
.
Action
>
customActions
;
...
@@ -1466,7 +1466,7 @@ public class PlayerNotificationManager {
...
@@ -1466,7 +1466,7 @@ public class PlayerNotificationManager {
builder
.
setLargeIcon
(
largeIcon
);
builder
.
setLargeIcon
(
largeIcon
);
}
}
private
class
PlayerListener
implements
Player
.
Event
Listener
{
private
class
PlayerListener
implements
Player
.
Listener
{
@Override
@Override
public
void
onEvents
(
Player
player
,
Player
.
Events
events
)
{
public
void
onEvents
(
Player
player
,
Player
.
Events
events
)
{
...
...
library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java
View file @
7aaba1ff
...
@@ -66,6 +66,7 @@ import com.google.android.exoplayer2.util.ErrorMessageProvider;
...
@@ -66,6 +66,7 @@ import com.google.android.exoplayer2.util.ErrorMessageProvider;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.RepeatModeUtil
;
import
com.google.android.exoplayer2.util.RepeatModeUtil
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.video.VideoSize
;
import
com.google.common.collect.ImmutableList
;
import
com.google.common.collect.ImmutableList
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.Retention
;
...
@@ -1471,7 +1472,7 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
...
@@ -1471,7 +1472,7 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
period
=
new
Period
();
period
=
new
Period
();
}
}
//
TextOutput
implementation
//
Player.Listener
implementation
@Override
@Override
public
void
onCues
(
List
<
Cue
>
cues
)
{
public
void
onCues
(
List
<
Cue
>
cues
)
{
...
@@ -1480,13 +1481,13 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
...
@@ -1480,13 +1481,13 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
}
}
}
}
// VideoListener implementation
@Override
@Override
public
void
onVideoSizeChanged
(
public
void
onVideoSizeChanged
(
VideoSize
videoSize
)
{
int
width
,
int
height
,
int
unappliedRotationDegrees
,
float
pixelWidthHeightRatio
)
{
int
width
=
videoSize
.
width
;
int
height
=
videoSize
.
height
;
int
unappliedRotationDegrees
=
videoSize
.
unappliedRotationDegrees
;
float
videoAspectRatio
=
float
videoAspectRatio
=
(
height
==
0
||
width
==
0
)
?
1
:
(
width
*
pixelWidthHeightRatio
)
/
height
;
(
height
==
0
||
width
==
0
)
?
1
:
(
width
*
videoSize
.
pixelWidthHeightRatio
)
/
height
;
if
(
surfaceView
instanceof
TextureView
)
{
if
(
surfaceView
instanceof
TextureView
)
{
// Try to apply rotation transformation when our surface is a TextureView.
// Try to apply rotation transformation when our surface is a TextureView.
...
@@ -1546,8 +1547,6 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
...
@@ -1546,8 +1547,6 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
updateForCurrentTrackSelections
(
/* isNewPlayer= */
false
);
updateForCurrentTrackSelections
(
/* isNewPlayer= */
false
);
}
}
// Player.EventListener implementation
@Override
@Override
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
updateBuffering
();
updateBuffering
();
...
...
library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java
View file @
7aaba1ff
...
@@ -1754,37 +1754,12 @@ public class StyledPlayerControlView extends FrameLayout {
...
@@ -1754,37 +1754,12 @@ public class StyledPlayerControlView extends FrameLayout {
}
}
private
final
class
ComponentListener
private
final
class
ComponentListener
implements
Player
.
Event
Listener
,
implements
Player
.
Listener
,
TimeBar
.
OnScrubListener
,
TimeBar
.
OnScrubListener
,
OnClickListener
,
OnClickListener
,
PopupWindow
.
OnDismissListener
{
PopupWindow
.
OnDismissListener
{
@Override
@Override
public
void
onScrubStart
(
TimeBar
timeBar
,
long
position
)
{
scrubbing
=
true
;
if
(
positionView
!=
null
)
{
positionView
.
setText
(
Util
.
getStringForTime
(
formatBuilder
,
formatter
,
position
));
}
controlViewLayoutManager
.
removeHideCallbacks
();
}
@Override
public
void
onScrubMove
(
TimeBar
timeBar
,
long
position
)
{
if
(
positionView
!=
null
)
{
positionView
.
setText
(
Util
.
getStringForTime
(
formatBuilder
,
formatter
,
position
));
}
}
@Override
public
void
onScrubStop
(
TimeBar
timeBar
,
long
position
,
boolean
canceled
)
{
scrubbing
=
false
;
if
(!
canceled
&&
player
!=
null
)
{
seekToTimeBarPosition
(
player
,
position
);
}
controlViewLayoutManager
.
resetHideCallbacks
();
}
@Override
public
void
onEvents
(
Player
player
,
Events
events
)
{
public
void
onEvents
(
Player
player
,
Events
events
)
{
if
(
events
.
containsAny
(
EVENT_PLAYBACK_STATE_CHANGED
,
EVENT_PLAY_WHEN_READY_CHANGED
))
{
if
(
events
.
containsAny
(
EVENT_PLAYBACK_STATE_CHANGED
,
EVENT_PLAY_WHEN_READY_CHANGED
))
{
updatePlayPauseButton
();
updatePlayPauseButton
();
...
@@ -1818,6 +1793,31 @@ public class StyledPlayerControlView extends FrameLayout {
...
@@ -1818,6 +1793,31 @@ public class StyledPlayerControlView extends FrameLayout {
}
}
@Override
@Override
public
void
onScrubStart
(
TimeBar
timeBar
,
long
position
)
{
scrubbing
=
true
;
if
(
positionView
!=
null
)
{
positionView
.
setText
(
Util
.
getStringForTime
(
formatBuilder
,
formatter
,
position
));
}
controlViewLayoutManager
.
removeHideCallbacks
();
}
@Override
public
void
onScrubMove
(
TimeBar
timeBar
,
long
position
)
{
if
(
positionView
!=
null
)
{
positionView
.
setText
(
Util
.
getStringForTime
(
formatBuilder
,
formatter
,
position
));
}
}
@Override
public
void
onScrubStop
(
TimeBar
timeBar
,
long
position
,
boolean
canceled
)
{
scrubbing
=
false
;
if
(!
canceled
&&
player
!=
null
)
{
seekToTimeBarPosition
(
player
,
position
);
}
controlViewLayoutManager
.
resetHideCallbacks
();
}
@Override
public
void
onDismiss
()
{
public
void
onDismiss
()
{
if
(
needToHideBars
)
{
if
(
needToHideBars
)
{
controlViewLayoutManager
.
resetHideCallbacks
();
controlViewLayoutManager
.
resetHideCallbacks
();
...
...
library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java
View file @
7aaba1ff
...
@@ -67,6 +67,7 @@ import com.google.android.exoplayer2.util.ErrorMessageProvider;
...
@@ -67,6 +67,7 @@ import com.google.android.exoplayer2.util.ErrorMessageProvider;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.RepeatModeUtil
;
import
com.google.android.exoplayer2.util.RepeatModeUtil
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.util.Util
;
import
com.google.android.exoplayer2.video.VideoSize
;
import
com.google.common.collect.ImmutableList
;
import
com.google.common.collect.ImmutableList
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.Documented
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.Retention
;
...
@@ -1512,7 +1513,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
...
@@ -1512,7 +1513,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
period
=
new
Period
();
period
=
new
Period
();
}
}
//
TextOutput
implementation
//
Player.Listener
implementation
@Override
@Override
public
void
onCues
(
List
<
Cue
>
cues
)
{
public
void
onCues
(
List
<
Cue
>
cues
)
{
...
@@ -1521,13 +1522,13 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
...
@@ -1521,13 +1522,13 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
}
}
}
}
// VideoListener implementation
@Override
@Override
public
void
onVideoSizeChanged
(
public
void
onVideoSizeChanged
(
VideoSize
videoSize
)
{
int
width
,
int
height
,
int
unappliedRotationDegrees
,
float
pixelWidthHeightRatio
)
{
int
width
=
videoSize
.
width
;
int
height
=
videoSize
.
height
;
int
unappliedRotationDegrees
=
videoSize
.
unappliedRotationDegrees
;
float
videoAspectRatio
=
float
videoAspectRatio
=
(
height
==
0
||
width
==
0
)
?
1
:
(
width
*
pixelWidthHeightRatio
)
/
height
;
(
height
==
0
||
width
==
0
)
?
1
:
(
width
*
videoSize
.
pixelWidthHeightRatio
)
/
height
;
if
(
surfaceView
instanceof
TextureView
)
{
if
(
surfaceView
instanceof
TextureView
)
{
// Try to apply rotation transformation when our surface is a TextureView.
// Try to apply rotation transformation when our surface is a TextureView.
...
@@ -1587,8 +1588,6 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
...
@@ -1587,8 +1588,6 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider {
updateForCurrentTrackSelections
(
/* isNewPlayer= */
false
);
updateForCurrentTrackSelections
(
/* isNewPlayer= */
false
);
}
}
// Player.EventListener implementation
@Override
@Override
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
public
void
onPlaybackStateChanged
(
@Player
.
State
int
playbackState
)
{
updateBuffering
();
updateBuffering
();
...
...
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