fix(android): ads build and enable ads in android sample (#3376)
* fix: refactor androidx core version management * chore: fix missing import rework for media3 * fix: enable IMA in sample * chore: rename stub fie * chore: code review, fix variable name * chore: reorder imports * chore: fix linking in sample * chore: fix stub management * chore: few cleans and ensure we don't use ima is disabled --------- Co-authored-by: olivier <olivier.bouillet@ifeelsmart.com>
This commit is contained in:
		@@ -61,6 +61,7 @@ import androidx.media3.exoplayer.drm.FrameworkMediaDrm;
 | 
			
		||||
import androidx.media3.exoplayer.drm.HttpMediaDrmCallback;
 | 
			
		||||
import androidx.media3.exoplayer.drm.UnsupportedDrmException;
 | 
			
		||||
import androidx.media3.exoplayer.hls.HlsMediaSource;
 | 
			
		||||
import androidx.media3.exoplayer.ima.ImaAdsLoader;
 | 
			
		||||
import androidx.media3.exoplayer.mediacodec.MediaCodecInfo;
 | 
			
		||||
import androidx.media3.exoplayer.mediacodec.MediaCodecUtil;
 | 
			
		||||
import androidx.media3.exoplayer.smoothstreaming.DefaultSsChunkSource;
 | 
			
		||||
@@ -103,7 +104,6 @@ import com.facebook.react.bridge.ReadableArray;
 | 
			
		||||
import com.facebook.react.bridge.ReadableMap;
 | 
			
		||||
import com.facebook.react.uimanager.ThemedReactContext;
 | 
			
		||||
import com.google.ads.interactivemedia.v3.api.AdEvent;
 | 
			
		||||
import com.google.android.exoplayer2.ext.ima.ImaAdsLoader;
 | 
			
		||||
import com.google.common.collect.ImmutableList;
 | 
			
		||||
 | 
			
		||||
import java.net.CookieHandler;
 | 
			
		||||
@@ -617,10 +617,14 @@ public class ReactExoplayerView extends FrameLayout implements
 | 
			
		||||
                        .setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_OFF);
 | 
			
		||||
 | 
			
		||||
        // Create an AdsLoader.
 | 
			
		||||
        adsLoader = new ImaAdsLoader.Builder(themedReactContext).setAdEventListener(this).build();
 | 
			
		||||
        adsLoader = new ImaAdsLoader.Builder(themedReactContext)
 | 
			
		||||
                .setAdEventListener(this)
 | 
			
		||||
                .build();
 | 
			
		||||
 | 
			
		||||
        MediaSource.Factory mediaSourceFactory = new DefaultMediaSourceFactory(mediaDataSourceFactory)
 | 
			
		||||
                .setLocalAdInsertionComponents(unusedAdTagUri -> adsLoader, exoPlayerView);
 | 
			
		||||
        DefaultMediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(mediaDataSourceFactory);
 | 
			
		||||
        if (adsLoader != null) {
 | 
			
		||||
            mediaSourceFactory.setLocalAdInsertionComponents(unusedAdTagUri -> adsLoader, exoPlayerView);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        player = new ExoPlayer.Builder(getContext(), renderersFactory)
 | 
			
		||||
                .setTrackSelector(self.trackSelector)
 | 
			
		||||
@@ -665,8 +669,8 @@ public class ReactExoplayerView extends FrameLayout implements
 | 
			
		||||
        ArrayList<MediaSource> mediaSourceList = buildTextSources();
 | 
			
		||||
        MediaSource videoSource = buildMediaSource(self.srcUri, self.extension, drmSessionManager, cropStartMs, cropEndMs);
 | 
			
		||||
        MediaSource mediaSourceWithAds = null;
 | 
			
		||||
        if (adTagUrl != null) {
 | 
			
		||||
            MediaSource.Factory mediaSourceFactory = new DefaultMediaSourceFactory(mediaDataSourceFactory)
 | 
			
		||||
        if (adTagUrl != null && adsLoader != null) {
 | 
			
		||||
            DefaultMediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(mediaDataSourceFactory)
 | 
			
		||||
                    .setLocalAdInsertionComponents(unusedAdTagUri -> adsLoader, exoPlayerView);
 | 
			
		||||
            DataSpec adTagDataSpec = new DataSpec(adTagUrl);
 | 
			
		||||
            mediaSourceWithAds = new AdsMediaSource(videoSource, adTagDataSpec, ImmutableList.of(srcUri, adTagUrl), mediaSourceFactory, adsLoader, exoPlayerView);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user