From 2638ffb3154e7570e80796fb21c58ca19b76018e Mon Sep 17 00:00:00 2001 From: Maksym Danylov Date: Tue, 13 May 2025 00:22:14 +0300 Subject: [PATCH] Replaces deprecated exoplayer2 with media3 exoplayer in examples. --- Example/PrebidDemoJava/build.gradle | 7 ++--- .../original/GamOriginalApiVideoInStream.java | 31 ++++++++++--------- Example/PrebidDemoKotlin/build.gradle | 9 +++--- .../GamOriginalApiInStreamActivity.kt | 30 +++++++++--------- 4 files changed, 39 insertions(+), 38 deletions(-) diff --git a/Example/PrebidDemoJava/build.gradle b/Example/PrebidDemoJava/build.gradle index 0138f115b..535101ed4 100644 --- a/Example/PrebidDemoJava/build.gradle +++ b/Example/PrebidDemoJava/build.gradle @@ -42,10 +42,9 @@ dependencies { implementation libs.google.play.services.ads // Video Player - implementation 'com.google.android.exoplayer:exoplayer:2.15.1' - implementation 'com.google.android.exoplayer:exoplayer-core:2.15.1' - implementation 'com.google.android.exoplayer:exoplayer-ui:2.15.1' - implementation 'com.google.android.exoplayer:extension-ima:2.15.1' + implementation 'androidx.media3:media3-ui:1.6.1' + implementation 'androidx.media3:media3-exoplayer:1.6.1' + implementation 'androidx.media3:media3-exoplayer-ima:1.6.1' // Multidex implementation 'androidx.multidex:multidex:2.0.0' diff --git a/Example/PrebidDemoJava/src/main/java/org/prebid/mobile/javademo/activities/ads/gam/original/GamOriginalApiVideoInStream.java b/Example/PrebidDemoJava/src/main/java/org/prebid/mobile/javademo/activities/ads/gam/original/GamOriginalApiVideoInStream.java index 747221f09..ee0e6aef2 100644 --- a/Example/PrebidDemoJava/src/main/java/org/prebid/mobile/javademo/activities/ads/gam/original/GamOriginalApiVideoInStream.java +++ b/Example/PrebidDemoJava/src/main/java/org/prebid/mobile/javademo/activities/ads/gam/original/GamOriginalApiVideoInStream.java @@ -5,23 +5,23 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; - -import com.google.android.exoplayer2.MediaItem; -import com.google.android.exoplayer2.SimpleExoPlayer; -import com.google.android.exoplayer2.ext.ima.ImaAdsLoader; -import com.google.android.exoplayer2.source.MediaSource; -import com.google.android.exoplayer2.source.ProgressiveMediaSource; -import com.google.android.exoplayer2.source.ads.AdsMediaSource; -import com.google.android.exoplayer2.ui.PlayerView; -import com.google.android.exoplayer2.upstream.DataSource; -import com.google.android.exoplayer2.upstream.DataSpec; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import androidx.annotation.OptIn; +import androidx.media3.common.MediaItem; +import androidx.media3.common.util.UnstableApi; +import androidx.media3.datasource.DataSource; +import androidx.media3.datasource.DataSpec; +import androidx.media3.datasource.DefaultDataSource; +import androidx.media3.exoplayer.ExoPlayer; +import androidx.media3.exoplayer.ima.ImaAdsLoader; +import androidx.media3.exoplayer.source.MediaSource; +import androidx.media3.exoplayer.source.ProgressiveMediaSource; +import androidx.media3.exoplayer.source.ads.AdsMediaSource; +import androidx.media3.ui.PlayerView; import org.prebid.mobile.InStreamVideoAdUnit; import org.prebid.mobile.Signals; import org.prebid.mobile.Util; import org.prebid.mobile.VideoParameters; -import org.prebid.mobile.javademo.R; import org.prebid.mobile.javademo.activities.BaseAdActivity; import java.util.Collections; @@ -38,7 +38,7 @@ public class GamOriginalApiVideoInStream extends BaseAdActivity { private static final String VIDEO_URL = "https://storage.googleapis.com/gvabox/media/samples/stock.mp4"; private InStreamVideoAdUnit adUnit; - private SimpleExoPlayer player; + private ExoPlayer player; private Uri adsUri; private ImaAdsLoader adsLoader; private PlayerView playerView; @@ -76,15 +76,16 @@ private void createAd() { }); } + @OptIn(markerClass = UnstableApi.class) private void initializePlayer() { - SimpleExoPlayer.Builder playerBuilder = new SimpleExoPlayer.Builder(this); + ExoPlayer.Builder playerBuilder = new ExoPlayer.Builder(this); player = playerBuilder.build(); playerView.setPlayer(player); adsLoader.setPlayer(player); Uri uri = Uri.parse(VIDEO_URL); MediaItem mediaItem = MediaItem.fromUri(uri); - DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this, getString(R.string.app_name)); + DataSource.Factory dataSourceFactory = new DefaultDataSource.Factory(this); ProgressiveMediaSource.Factory mediaSourceFactory = new ProgressiveMediaSource.Factory(dataSourceFactory); MediaSource mediaSource = mediaSourceFactory.createMediaSource(mediaItem); diff --git a/Example/PrebidDemoKotlin/build.gradle b/Example/PrebidDemoKotlin/build.gradle index 84df69c7d..dfbb82f5c 100644 --- a/Example/PrebidDemoKotlin/build.gradle +++ b/Example/PrebidDemoKotlin/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'kotlin-android' android { namespace "org.prebid.mobile.prebidkotlindemo" - setCompileSdkVersion(34) + setCompileSdkVersion(35) setBuildToolsVersion("35.0.1") defaultConfig { minSdkVersion 23 @@ -58,10 +58,9 @@ dependencies { implementation 'androidx.multidex:multidex:2.0.1' // Video Player - implementation 'com.google.android.exoplayer:exoplayer:2.15.1' - implementation 'com.google.android.exoplayer:exoplayer-core:2.15.1' - implementation 'com.google.android.exoplayer:exoplayer-ui:2.15.1' - implementation 'com.google.android.exoplayer:extension-ima:2.15.1' + implementation 'androidx.media3:media3-ui:1.6.1' + implementation 'androidx.media3:media3-exoplayer:1.6.1' + implementation 'androidx.media3:media3-exoplayer-ima:1.6.1' // Tests testImplementation 'junit:junit:4.13.2' diff --git a/Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/activities/ads/gam/original/GamOriginalApiInStreamActivity.kt b/Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/activities/ads/gam/original/GamOriginalApiInStreamActivity.kt index 13962c4fb..b24919c62 100644 --- a/Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/activities/ads/gam/original/GamOriginalApiInStreamActivity.kt +++ b/Example/PrebidDemoKotlin/src/main/java/org/prebid/mobile/prebidkotlindemo/activities/ads/gam/original/GamOriginalApiInStreamActivity.kt @@ -18,18 +18,19 @@ package org.prebid.mobile.prebidkotlindemo.activities.ads.gam.original import android.net.Uri import android.os.Bundle import android.view.ViewGroup -import com.google.android.exoplayer2.MediaItem -import com.google.android.exoplayer2.SimpleExoPlayer -import com.google.android.exoplayer2.ext.ima.ImaAdsLoader -import com.google.android.exoplayer2.source.MediaSource -import com.google.android.exoplayer2.source.ProgressiveMediaSource -import com.google.android.exoplayer2.source.ads.AdsMediaSource -import com.google.android.exoplayer2.ui.PlayerView -import com.google.android.exoplayer2.upstream.DataSource -import com.google.android.exoplayer2.upstream.DataSpec -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory +import androidx.annotation.OptIn +import androidx.media3.common.MediaItem +import androidx.media3.common.util.UnstableApi +import androidx.media3.datasource.DataSource +import androidx.media3.datasource.DataSpec +import androidx.media3.datasource.DefaultDataSource +import androidx.media3.exoplayer.ExoPlayer +import androidx.media3.exoplayer.ima.ImaAdsLoader +import androidx.media3.exoplayer.source.MediaSource +import androidx.media3.exoplayer.source.ProgressiveMediaSource +import androidx.media3.exoplayer.source.ads.AdsMediaSource +import androidx.media3.ui.PlayerView import org.prebid.mobile.* -import org.prebid.mobile.prebidkotlindemo.R import org.prebid.mobile.prebidkotlindemo.activities.BaseAdActivity class GamOriginalApiInStreamActivity : BaseAdActivity() { @@ -45,7 +46,7 @@ class GamOriginalApiInStreamActivity : BaseAdActivity() { } private var adUnit: InStreamVideoAdUnit? = null - private var player: SimpleExoPlayer? = null + private var player: ExoPlayer? = null private var adsUri: Uri? = null private var adsLoader: ImaAdsLoader? = null private var playerView: PlayerView? = null @@ -108,10 +109,11 @@ class GamOriginalApiInStreamActivity : BaseAdActivity() { } } + @OptIn(UnstableApi::class) private fun initializePlayer() { adsLoader = ImaAdsLoader.Builder(this).build() - val playerBuilder = SimpleExoPlayer.Builder(this) + val playerBuilder = ExoPlayer.Builder(this) player = playerBuilder.build() playerView!!.player = player adsLoader!!.setPlayer(player) @@ -119,7 +121,7 @@ class GamOriginalApiInStreamActivity : BaseAdActivity() { val uri = Uri.parse(VIDEO_URL) val mediaItem = MediaItem.fromUri(uri) - val dataSourceFactory: DataSource.Factory = DefaultDataSourceFactory(this, getString(R.string.app_name)) + val dataSourceFactory: DataSource.Factory = DefaultDataSource.Factory(this) val mediaSourceFactory = ProgressiveMediaSource.Factory(dataSourceFactory) val mediaSource: MediaSource = mediaSourceFactory.createMediaSource(mediaItem) val dataSpec = DataSpec(adsUri!!)