Skip to content

Commit cd9fdbc

Browse files
authored
Merge pull request #10 from mirego/task/update-exo-2.17.0
Update agent to track events from ExoPlayer 2.17.0
2 parents d38a984 + efbd5ca commit cd9fdbc

File tree

6 files changed

+51
-32
lines changed

6 files changed

+51
-32
lines changed

NRExoPlayerTracker/build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ plugins {
33
}
44

55
android {
6-
compileSdkVersion 29
6+
compileSdkVersion 31
77

88
defaultConfig {
99
minSdkVersion 16
10-
targetSdkVersion 29
10+
targetSdkVersion 30
1111
versionCode 1
12-
versionName "0.99.1"
12+
versionName "0.99.6"
1313

1414
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1515
consumerProguardFiles "consumer-rules.pro"
@@ -40,8 +40,8 @@ dependencies {
4040
implementation 'androidx.appcompat:appcompat:1.2.0'
4141
implementation 'com.google.android.material:material:1.2.1'
4242
implementation project(path: ':NewRelicVideoCore')
43-
implementation 'com.google.android.exoplayer:exoplayer:+'
43+
implementation 'com.google.android.exoplayer:exoplayer:2.17.0'
4444
testImplementation 'junit:junit:4.+'
4545
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
4646
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
47-
}
47+
}

NRExoPlayerTracker/src/main/java/com/newrelic/videoagent/exoplayer/tracker/NRTrackerExoPlayer.java

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
package com.newrelic.videoagent.exoplayer.tracker;
22

33
import 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;
57
import com.google.android.exoplayer2.Player;
68
import com.google.android.exoplayer2.SimpleExoPlayer;
9+
import com.google.android.exoplayer2.TracksInfo;
710
import com.google.android.exoplayer2.analytics.AnalyticsListener;
811
import com.google.android.exoplayer2.source.LoadEventInfo;
912
import 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;
1214
import com.newrelic.videoagent.core.tracker.NRVideoTracker;
1315
import com.newrelic.videoagent.core.utils.NRLog;
1416
import com.newrelic.videoagent.exoplayer.BuildConfig;
@@ -23,9 +25,9 @@
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;

NRIMATracker/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ plugins {
33
}
44

55
android {
6-
compileSdkVersion 30
6+
compileSdkVersion 31
77

88
defaultConfig {
99
minSdkVersion 16
1010
targetSdkVersion 30
1111
versionCode 1
12-
versionName "0.99.0"
12+
versionName "0.99.6"
1313

1414
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1515
consumerProguardFiles "consumer-rules.pro"
@@ -44,4 +44,4 @@ dependencies {
4444
testImplementation 'junit:junit:4.+'
4545
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
4646
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
47-
}
47+
}

NewRelicVideoCore/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ plugins {
33
}
44

55
android {
6-
compileSdkVersion 29
6+
compileSdkVersion 31
77

88
defaultConfig {
99
minSdkVersion 16
@@ -43,4 +43,4 @@ dependencies {
4343
testImplementation 'junit:junit:4.+'
4444
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
4545
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
46-
}
46+
}

Test/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
android {
7-
compileSdkVersion 30
7+
compileSdkVersion 31
88

99
defaultConfig {
1010
applicationId "com.newrelic.coretest"
@@ -43,4 +43,4 @@ dependencies {
4343
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
4444

4545
implementation project(path: ':NewRelicVideoCore')
46-
}
46+
}

app/build.gradle

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ plugins {
33
}
44

55
android {
6-
compileSdkVersion 29
6+
compileSdkVersion 31
77

88
defaultConfig {
99
applicationId "com.newrelic.nrvideoproject"
1010
minSdkVersion 16
11-
targetSdkVersion 29
11+
targetSdkVersion 30
1212
versionCode 1
1313
versionName "1.0"
1414

@@ -27,6 +27,10 @@ android {
2727
sourceCompatibility JavaVersion.VERSION_1_8
2828
targetCompatibility JavaVersion.VERSION_1_8
2929
}
30+
31+
packagingOptions {
32+
exclude("META-INF/*.kotlin_module")
33+
}
3034
}
3135

3236
apply plugin: 'newrelic'
@@ -45,10 +49,10 @@ dependencies {
4549
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
4650
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
4751

48-
implementation 'com.google.android.exoplayer:exoplayer:+'
52+
implementation 'com.google.android.exoplayer:exoplayer:2.17.0'
4953
implementation 'com.google.android.exoplayer:extension-ima:+'
5054

5155
implementation 'com.newrelic.agent.android:android-agent:+'
5256

5357
implementation 'com.android.support:multidex:1.0.3'
54-
}
58+
}

0 commit comments

Comments
 (0)