11package com .newrelic .videoagent .exoplayer .tracker ;
22
33import android .net .Uri ;
4- import com .google .android .exoplayer2 .ExoPlaybackException ;
4+
5+ import com .google .android .exoplayer2 .ExoPlayer ;
6+ import com .google .android .exoplayer2 .PlaybackException ;
57import com .google .android .exoplayer2 .Player ;
68import com .google .android .exoplayer2 .SimpleExoPlayer ;
9+ import com .google .android .exoplayer2 .TracksInfo ;
710import com .google .android .exoplayer2 .analytics .AnalyticsListener ;
811import com .google .android .exoplayer2 .source .LoadEventInfo ;
912import com .google .android .exoplayer2 .source .MediaLoadData ;
10- import com .google .android .exoplayer2 .source .TrackGroupArray ;
11- import com .google .android .exoplayer2 .trackselection .TrackSelectionArray ;
13+ import com .google .android .exoplayer2 .video .VideoSize ;
1214import com .newrelic .videoagent .core .tracker .NRVideoTracker ;
1315import com .newrelic .videoagent .core .utils .NRLog ;
1416import com .newrelic .videoagent .exoplayer .BuildConfig ;
2325/**
2426 * New Relic Video tracker for ExoPlayer.
2527 */
26- public class NRTrackerExoPlayer extends NRVideoTracker implements Player .EventListener , AnalyticsListener {
28+ public class NRTrackerExoPlayer extends NRVideoTracker implements Player .Listener , AnalyticsListener {
2729
28- protected SimpleExoPlayer player ;
30+ protected ExoPlayer player ;
2931
3032 private long bitrateEstimate ;
3133 private int lastHeight ;
@@ -44,7 +46,7 @@ public NRTrackerExoPlayer() {}
4446 *
4547 * @param player ExoPlayer instance.
4648 */
47- public NRTrackerExoPlayer (SimpleExoPlayer player ) {
49+ public NRTrackerExoPlayer (ExoPlayer player ) {
4850 setPlayer (player );
4951 }
5052
@@ -55,7 +57,7 @@ public NRTrackerExoPlayer(SimpleExoPlayer player) {
5557 */
5658 @ Override
5759 public void setPlayer (Object player ) {
58- this .player = (SimpleExoPlayer ) player ;
60+ this .player = (ExoPlayer ) player ;
5961 registerListeners ();
6062 super .setPlayer (player );
6163 }
@@ -253,7 +255,7 @@ public Boolean getIsMuted() {
253255 *
254256 * @return Attribute.
255257 */
256- private SimpleExoPlayer getPlayer () {
258+ private ExoPlayer getPlayer () {
257259 return player ;
258260 }
259261
@@ -343,7 +345,16 @@ public void sendDroppedFrame(int count, int elapsed) {
343345 // ExoPlayer Player.EventListener
344346
345347 @ Override
346- public void onPlayerStateChanged (boolean playWhenReady , int playbackState ) {
348+ public void onPlayWhenReadyChanged (boolean playWhenReady , int reason ) {
349+ logOnPlayerStateChanged (playWhenReady , player .getPlaybackState ());
350+ }
351+
352+ @ Override
353+ public void onPlaybackStateChanged (int playbackState ) {
354+ logOnPlayerStateChanged (player .getPlayWhenReady (), playbackState );
355+ }
356+
357+ private void logOnPlayerStateChanged (boolean playWhenReady , int playbackState ) {
347358
348359 NRLog .d ("onPlayerStateChanged, payback state = " + playbackState + " {" );
349360
@@ -418,24 +429,26 @@ else if (playWhenReady) {
418429 }
419430
420431 @ Override
421- public void onPlayerError (ExoPlaybackException error ) {
432+ public void onPlayerError (PlaybackException error ) {
422433 NRLog .d ("onPlayerError" );
423434 sendError (error );
424435 }
425436
426437 // ExoPlayer AnalyticsListener
427438
428439 @ Override
429- public void onSeekStarted (AnalyticsListener .EventTime eventTime ) {
430- NRLog .d ("onSeekStarted analytics" );
440+ public void onPositionDiscontinuity (Player .PositionInfo oldPosition , Player .PositionInfo newPosition , int reason ) {
441+ if (reason == Player .DISCONTINUITY_REASON_SEEK ) {
442+ NRLog .d ("onSeekStarted analytics" );
431443
432- if (!getState ().isSeeking ) {
433- sendSeekStart ();
444+ if (!getState ().isSeeking ) {
445+ sendSeekStart ();
446+ }
434447 }
435448 }
436449
437450 @ Override
438- public void onTracksChanged ( AnalyticsListener . EventTime eventTime , TrackGroupArray trackGroups , TrackSelectionArray trackSelections ) {
451+ public void onTracksInfoChanged ( EventTime eventTime , TracksInfo tracksInfo ) {
439452 NRLog .d ("onTracksChanged analytics" );
440453
441454 // Next track in the playlist
@@ -468,7 +481,9 @@ public void onDroppedVideoFrames(AnalyticsListener.EventTime eventTime, int drop
468481 }
469482
470483 @ Override
471- public void onVideoSizeChanged (AnalyticsListener .EventTime eventTime , int width , int height , int unappliedRotationDegrees , float pixelWidthHeightRatio ) {
484+ public void onVideoSizeChanged (VideoSize videoSize ) {
485+ int width = videoSize .width ;
486+ int height = videoSize .height ;
472487 NRLog .d ("onVideoSizeChanged analytics, H = " + height + " W = " + width );
473488
474489 if (player .isPlayingAd ()) return ;
0 commit comments