Skip to content

Commit

Permalink
Showing 12 changed files with 45 additions and 21 deletions.
10 changes: 9 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -7,7 +7,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/).

## Development

## v.1.6.0
## v1.6.1

### Fixed

- `videoTimeStart` and `videoTimeEnd` were not set when sending out heartbeats
- Exoplayer Collector now reports `playerVersion` as `exoplayer-<SDK-version>`
- Bitmovin Collector now reports `playerVersion` as `bitmovin-<SDK-version>`

## v1.6.0

### Added

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -22,7 +22,7 @@ For Bitmovin Player:

```
dependencies {
implementation 'com.bitmovin.analytics:collector-bitmovin-player:1.6.0'
implementation 'com.bitmovin.analytics:collector-bitmovin-player:1.6.1'
}
```
@@ -31,7 +31,7 @@ For ExoPlayer:

```
dependencies {
implementation 'com.bitmovin.analytics:collector-exoplayer:1.6.0'
implementation 'com.bitmovin.analytics:collector-exoplayer:1.6.1'
}
```

3 changes: 2 additions & 1 deletion analyticsexample/build.gradle
Original file line number Diff line number Diff line change
@@ -42,5 +42,6 @@ dependencies {
implementation 'com.google.android.exoplayer:exoplayer:2.8.1'

// Pull from Maven Repo
implementation 'com.bitmovin.analytics:collector-exoplayer:1.6.0'
implementation 'com.bitmovin.analytics:collector-exoplayer:1.6.1'
//implementation project(':collector-exoplayer')
}
3 changes: 2 additions & 1 deletion bitmovinanalyticsexample/build.gradle
Original file line number Diff line number Diff line change
@@ -50,6 +50,7 @@ dependencies {
implementation 'com.bitmovin.player:playercore:2.+'

// Pull from Maven Repo
implementation 'com.bitmovin.analytics:collector-bitmovin-player:1.6.0'
implementation 'com.bitmovin.analytics:collector-bitmovin-player:1.6.1'
//implementation project(':collector-bitmovin-player')
}

7 changes: 4 additions & 3 deletions collector-bitmovin-player/build.gradle
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

def packageName = 'com.bitmovin.analytics'
def libraryVersion = '1.6.0'
def libraryVersion = '1.6.1'

android {

@@ -12,7 +12,7 @@ android {
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
versionCode 106000
versionCode 106001
versionName libraryVersion

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -39,7 +39,8 @@ dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

api 'com.bitmovin.analytics:collector:1.6.0'
api 'com.bitmovin.analytics:collector:1.6.1'
//api project(':collector')
implementation 'com.bitmovin.player:playercore:2.20.1'

}
Original file line number Diff line number Diff line change
@@ -144,7 +144,7 @@ public EventData createEventData() {
data.setLive(bitmovinPlayer.isLive());

//version
data.setVersion(BitmovinUtil.getPlayerVersion());
data.setVersion(PlayerType.BITMOVIN.toString() + "-" + BitmovinUtil.getPlayerVersion());

//isCasting
data.setCasting(bitmovinPlayer.isCasting());
@@ -179,7 +179,7 @@ public EventData createEventData() {
return data;
}

private long getPosition() {
public long getPosition() {
return (long) bitmovinPlayer.getCurrentTime() * Util.MILLISECONDS_IN_SECONDS;
}

7 changes: 4 additions & 3 deletions collector-exoplayer/build.gradle
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

def packageName = 'com.bitmovin.analytics'
def libraryVersion = '1.6.0'
def libraryVersion = '1.6.1'

android {

@@ -12,7 +12,7 @@ android {
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
versionCode 106000
versionCode 106001
versionName libraryVersion

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -39,7 +39,8 @@ dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

api 'com.bitmovin.analytics:collector:1.6.0'
api 'com.bitmovin.analytics:collector:1.6.1'
//api project(':collector')
implementation 'com.google.android.exoplayer:exoplayer:2.8.0'

}
Original file line number Diff line number Diff line change
@@ -74,7 +74,7 @@ public void release() {
}
}

private long getPosition() {
public long getPosition() {
Timeline timeline = this.exoplayer.getCurrentTimeline();
int currentWindowIndex = this.exoplayer.getCurrentWindowIndex();
if (currentWindowIndex >= 0 && currentWindowIndex < timeline.getWindowCount()) {
@@ -234,7 +234,7 @@ private void decorateDataWithPlaybackInformation(EventData data) {
data.setLive(exoplayer.isCurrentWindowDynamic());

//version
data.setVersion(ExoUtil.getPlayerVersion());
data.setVersion(PlayerType.EXOPLAYER.toString() + "-" + ExoUtil.getPlayerVersion());

//streamFormat, mpdUrl, and m3u8Url
Object manifest = exoplayer.getCurrentManifest();
4 changes: 2 additions & 2 deletions collector/build.gradle
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

def packageName = 'com.bitmovin.analytics'
def libraryVersion = '1.6.0'
def libraryVersion = '1.6.1'

android {

@@ -12,7 +12,7 @@ android {
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
versionCode 106000
versionCode 106001
versionName libraryVersion

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
Original file line number Diff line number Diff line change
@@ -31,7 +31,7 @@ public class BitmovinAnalytics implements StateMachineListener, LicenseCallback
*/
public BitmovinAnalytics(BitmovinAnalyticsConfig bitmovinAnalyticsConfig) {
this.bitmovinAnalyticsConfig = bitmovinAnalyticsConfig;
this.playerStateMachine = new PlayerStateMachine(this.bitmovinAnalyticsConfig);
this.playerStateMachine = new PlayerStateMachine(this.bitmovinAnalyticsConfig, this);
this.playerStateMachine.addListener(this);
this.eventDataDispatcher = new SimpleEventDataDispatcher(this.bitmovinAnalyticsConfig, this);
}
@@ -212,6 +212,13 @@ public void sendEventData(EventData data) {
this.eventDataDispatcher.add(data);
}

public long getPosition() {
if(playerAdapter == null) {
return 0;
}
return playerAdapter.getPosition();
}

@Override
public void authenticationCompleted(boolean success) {
if (!success) {
Original file line number Diff line number Diff line change
@@ -6,4 +6,5 @@ public interface PlayerAdapter {
EventData createEventData();

void release();
long getPosition();
}
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
import android.os.Handler;
import android.util.Log;

import com.bitmovin.analytics.BitmovinAnalytics;
import com.bitmovin.analytics.BitmovinAnalyticsConfig;
import com.bitmovin.analytics.data.ErrorCode;
import com.bitmovin.analytics.utils.Util;
@@ -25,9 +26,11 @@ public class PlayerStateMachine {
private String impressionId;
private Handler heartbeatHandler = new Handler();
private int heartbeatDelay = 59700; // default to 60 seconds
private final BitmovinAnalytics analytics;

public PlayerStateMachine(BitmovinAnalyticsConfig config) {
public PlayerStateMachine(BitmovinAnalyticsConfig config, BitmovinAnalytics analytics) {
this.config = config;
this.analytics = analytics;
this.heartbeatDelay = this.config.getHeartbeatInterval();
resetStateMachine();
}
@@ -37,11 +40,12 @@ public void enableHeartbeat() {
public void run() {
long currentTimestamp = Util.getTimeStamp();
long enterTimestamp = getOnEnterStateTimeStamp();

videoTimeEnd = analytics.getPosition();
for (StateMachineListener listener : getListeners()) {
listener.onHeartbeat(currentTimestamp - onEnterStateTimeStamp);
listener.onHeartbeat(currentTimestamp - enterTimestamp);
}
onEnterStateTimeStamp = currentTimestamp;
videoTimeStart = videoTimeEnd;
heartbeatHandler.postDelayed(this, heartbeatDelay);
}
}, heartbeatDelay);

0 comments on commit 58714b2

Please sign in to comment.