Skip to content

Shoplive Android SDK 3.0.1

Choose a tag to compare

@mb-kyle-k mb-kyle-k released this 07 Sep 14:25
· 9 commits to develop since this release

Shoplive Android SDK 3.0.1

No SDK sources — AAR / POM artifacts only.

What's changed

Breaking

  • In fullscreen, the back button shrinks the player to an in-app PIP window instead of closing
    it.
    Set pip.isInAppPipEnabled = false to restore close-on-back. In-app PIP also takes
    precedence over OS PIP for every PIP trigger, so pip.enterOSPipOnBackPressed applies only while
    in-app PIP is disabled.

Added

  • In-app PIP. The player can shrink to a draggable mini window over your own screens: tap to
    expand, drag to snap, close with × or by swiping it out, none of which interrupts playback.
    Configure it with pip.defaultPosition, pip.scale, pip.aspectRatio and pip.padding, or
    start a session straight into it with
    ShoplivePlayOptions(presentationStyle = ShoplivePlayerPresentationStyle.PIP) (start() only).
  • Private broadcasts. On a private campaign, playback, the mini window and OS PIP stay blocked
    until the viewer's entry code is accepted, with the campaign's private image shown in the
    meantime. Re-entering the same campaign later in the same app run does not ask again.
  • AndroidX Media3 support. The HLS engine now ships in both flavours.
    cloud.shoplive:shoplive-player-sdk resolves cloud.shoplive:shoplive-media3:1.10.1.1
    (AndroidX Media3 1.10.1) by default; to stay on ExoPlayer 2, exclude it and depend on
    cloud.shoplive:shoplive-exoplayer:2.19.1.11 instead. Do not depend on both.
  • New error codes for OS PIP — PIP_DEVICE_NOT_SUPPORTED (9510), PIP_DISABLED_BY_USER (9511),
    PIP_ACTIVITY_NOT_DECLARED (9512), PIP_ACTIVITY_CONFIG_CHANGES_MISSING (9513) and
    PIP_ENTER_FAILED (9514) report why an OS PIP window is unavailable. In-app PIP still works when
    one of these fires.
  • The campaign's live badge now renders in both PIP windows.
  • A .sha256 companion for every published artifact, so Gradle dependency verification can run
    against the published values.

Fixed

  • appearance.allowScreenCapture = false did not block screen capture — screenshots and screen
    recording of the player were possible regardless of the setting.
  • navigation.actionOnNavigation (PIP / KEEP / CLOSE) had no effect; all three now route.
  • navigation.closeWhenAppDestroyed and pip.enterOSPipOnBackPressed were never applied.
  • A READY campaign's teaser video was skipped on WebRTC campaigns, leaving the screen empty until
    the broadcast went on air.
  • Closing the player did not report the closed state to your delegate.
  • stop() followed by play() on the same campaign did not restart playback.

Notes

  • AAR / POM artifacts only — no SDK sources are published.

Gradle

maven {
    url = uri("https://sdk.shoplive.cloud/maven-repo")
}

implementation("cloud.shoplive:shoplive-player-sdk:3.0.1")
implementation("cloud.shoplive:shoplive-streamer-sdk:3.0.1")

Artifacts

  • cloud.shoplive:shoplive-android-webrtc:3.0.1
  • cloud.shoplive:shoplive-core:3.0.1
  • cloud.shoplive:shoplive-core-player:3.0.1
  • cloud.shoplive:shoplive-exoplayer:2.19.1.11
  • cloud.shoplive:shoplive-media3:1.10.1.1
  • cloud.shoplive:shoplive-player-sdk:3.0.1
  • cloud.shoplive:shoplive-rtmp:3.0.1
  • cloud.shoplive:shoplive-streamer-sdk:3.0.1
  • cloud.shoplive:shoplive-webrtc:3.0.1

Build provenance

  • Source: matrix-sdk-android@ee3c1fed9cb078b9a311eeded37c9f31b5bc8e55
  • Line: international
  • Tag: 3.0.1