diff --git a/connectors/uplynk/README.md b/connectors/uplynk/README.md index 738e5e51..1c9afd34 100644 --- a/connectors/uplynk/README.md +++ b/connectors/uplynk/README.md @@ -65,5 +65,46 @@ theoplayerView.player.source = SourceDescription .build() ``` -[uplynk-documentation]: https://docs.edgecast.com/video/#Setup/Setup-Overview.htm%3FTocPath%3DBasic%2520Setup%7C_____0 +### Getting Ad Information + +To retrieve information about the currently playing ad or ad break, you can use the following properties of THEOplayer: + + - `player.ads.currentAds`: Provides a list of currently playing ads. + - `player.ads.currentAdBreak`: Provides information about the currently active ad break. + +These fields contain generic data for any ad or ad break in THEOplayer. +However, for Uplynk-specific ad data, you can access the `customData` property. +Below are examples demonstrating how to do that: + +```kotlin +fun logCurrentAd() { + val uplynkAd = + theoplayerView.player.ads.currentAds.firstOrNull()?.customData as? UplynkAd ?: return + Log.d( + TAG, "UplynkAd: " + + "apiFramework = ${uplynkAd.apiFramework}, " + + "events = ${uplynkAd.events}, " + + "duration = ${uplynkAd.duration}, " + + "height = ${uplynkAd.height}, " + + "width = ${uplynkAd.width}, " + + "fwParameters = ${uplynkAd.fwParameters}, " + + "mimeType = ${uplynkAd.mimeType}" + ) +} + +fun logCurrentAdBreak() { + val uplynkAdBreak = + theoplayerView.player.ads.currentAdBreak?.customData as? UplynkAdBreak ?: return + Log.d( + TAG, "UplynkAdBreak: " + + "type = ${uplynkAdBreak.type}, " + + "ads = ${uplynkAdBreak.ads.size}, " + + "duration = ${uplynkAdBreak.duration}, " + + "timeOffset = ${uplynkAdBreak.timeOffset}, " + + "position = ${uplynkAdBreak.position}" + ) +} +``` + +[uplynk-documentation]: https://docs.edgecast.com/video/#Setup/Setup-Overview.htm [android-getting-started]: https://www.theoplayer.com/docs/theoplayer/getting-started/sdks/android/getting-started/ \ No newline at end of file diff --git a/connectors/uplynk/src/main/java/com/theoplayer/android/connector/uplynk/internal/AdHandler.kt b/connectors/uplynk/src/main/java/com/theoplayer/android/connector/uplynk/internal/AdHandler.kt index 79193e69..d2e9e1a7 100644 --- a/connectors/uplynk/src/main/java/com/theoplayer/android/connector/uplynk/internal/AdHandler.kt +++ b/connectors/uplynk/src/main/java/com/theoplayer/android/connector/uplynk/internal/AdHandler.kt @@ -18,10 +18,18 @@ internal class AdHandler(private val controller: ServerSideAdIntegrationControll private val scheduledAds = WeakHashMap() fun createAdBreak(adBreak: UplynkAdBreak) { - val adBreakInit = AdBreakInit(adBreak.timeOffset.secToMs, adBreak.duration.secToMs) + val adBreakInit = AdBreakInit( + timeOffset = adBreak.timeOffset.secToMs, + maxDuration = adBreak.duration.secToMs, + customData = adBreak + ) val currentAdBreak = controller.createAdBreak(adBreakInit) adBreak.ads.forEach { - val adInit = AdInit(type = adBreak.type, duration = it.duration.secToMs) + val adInit = AdInit( + type = adBreak.type, + duration = it.duration.secToMs, + customData = it + ) scheduledAds[it] = controller.createAd(adInit, currentAdBreak) } }