Skip to content

Releases

v1.1.2

Choose a tag to compare

@sinewave440hz sinewave440hz released this 29 Oct 14:24
f6864cd

Changes

  • Seeks are reported per EPAS: seeking carries the position before the seek, seeked is sent when the player is ready at the new position, and buffering during a seek is no longer reported. A seek while paused and back-to-back seeks give one seeking/seeked pair. (#31, #32)

Install

implementation 'com.github.Eyevinn:player-analytics-client-sdk-android:v1.1.2'

JitPack versions are the git tags, including the v. Declare the Media3 libraries your app uses (e.g. media3-exoplayer, media3-exoplayer-hls, media3-ui) yourself at 1.8.1.

Known issues

  • A seek before the first frame (resuming from a saved position) sends the start-up buffered/loaded after seeked.
  • After stopped, a further seek on the same player still sends events with the old sessionId (also in earlier versions).

Verified: ./gradlew test 21 tests green (debug and release) on f6864cd; seek scenarios (seek while playing, seek while paused, two seeks in a row) checked on an API 35 emulator against a local EPAS sink, see #32.

v1.1.1

Choose a tag to compare

@sinewave440hz sinewave440hz released this 28 Oct 10:37
d21efff

Changes

  • Media3 moved to the stable 1.8.1 release, so host apps no longer get Media3 1.8.0-alpha01 pulled in through this SDK. All androidx.media3 artefacts use one version; duplicate 1.4.1 declarations removed. (#29, #30)
  • CI: GitHub Actions runs unit tests and lint on every PR. (#27, #28)

Install

implementation 'com.github.Eyevinn:player-analytics-client-sdk-android:v1.1.1'

Media3 is published as a runtime dependency, so declare the Media3 libraries your app uses (e.g. media3-exoplayer, media3-exoplayer-hls, media3-ui) yourself at 1.8.1.

Known issue

  • seeked is not sent, and seeking reports the seek target instead of the starting position (present since 1.0; to be fixed in a later release).

Verified: unit tests (15) and CI green on d21efff; a minimal Media3 1.8.1 app built against this commit via JitPack sent a full session (init, loading, buffering/buffered, loaded, playing, heartbeat, paused, seeking, stopped) on an API 35 emulator.

v1.1.0

Choose a tag to compare

@sinewave440hz sinewave440hz released this 20 Oct 15:47
2d4d4de

Fixes

  • One stopped per session, with an EPAS reason (ended, aborted, error, unknown) instead of free text. New stopTracking(StopReason); stopTracking(String) still compiles but is deprecated. (#18, #20, #23)
  • Start-up events in EPAS order (buffering, buffered, loaded, playing) with one playing; loaded carries the real playhead and duration; events are posted one at a time, in order. (#19, #25)
  • The published library no longer adds a launcher activity, an Ads app id or a cleartext network config to host apps; the sample moved to its own :sample module. (#21, #24)
  • minSdk lowered from 34 to 21, so the SDK runs on older phones and Android TV / set-top boxes. (#22, #26)

Behaviour changes to note

  • stopped.payload.reason values change from free text to the EPAS values.
  • The library no longer depends on Compose, Material3, media3-ui, play-services-ads or the IMA SDK.

Verified: unit tests (15), lint at minSdk 21, live sessions on Pixel emulators (API 35 and API 21) through an eventsink.