Loading android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java +21 −10 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java: 21 added lines, 10 removed lines. Original line number Diff line number Diff line package com.brentvatne.exoplayer; import android.content.Context; import android.content.ContextWrapper; import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.network.CookieJarContainer; import com.facebook.react.modules.network.ForwardingCookieHandler; import com.facebook.react.modules.network.OkHttpClientProvider; import com.google.android.exoplayer2.ext.okhttp.OkHttpDataSourceFactory; import com.google.android.exoplayer2.upstream.DataSource; Loading @@ -10,6 +14,10 @@ import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.util.Util; import okhttp3.Cookie; import okhttp3.JavaNetCookieJar; import okhttp3.OkHttpClient; public class DataSourceUtil { private DataSourceUtil() { Loading @@ -23,14 +31,14 @@ public class DataSourceUtil { DataSourceUtil.userAgent = userAgent; } public static String getUserAgent(Context context) { public static String getUserAgent(ReactContext context) { if (userAgent == null) { userAgent = Util.getUserAgent(context.getApplicationContext(), "ReactNativeVideo"); userAgent = Util.getUserAgent(context, "ReactNativeVideo"); } return userAgent; } public static DataSource.Factory getRawDataSourceFactory(Context context) { public static DataSource.Factory getRawDataSourceFactory(ReactContext context) { if (rawDataSourceFactory == null) { rawDataSourceFactory = buildRawDataSourceFactory(context); } Loading @@ -41,7 +49,7 @@ public class DataSourceUtil { DataSourceUtil.rawDataSourceFactory = factory; } public static DataSource.Factory getDefaultDataSourceFactory(Context context, DefaultBandwidthMeter bandwidthMeter) { public static DataSource.Factory getDefaultDataSourceFactory(ReactContext context, DefaultBandwidthMeter bandwidthMeter) { if (defaultDataSourceFactory == null) { defaultDataSourceFactory = buildDataSourceFactory(context, bandwidthMeter); } Loading @@ -52,17 +60,20 @@ public class DataSourceUtil { DataSourceUtil.defaultDataSourceFactory = factory; } private static DataSource.Factory buildRawDataSourceFactory(Context context) { private static DataSource.Factory buildRawDataSourceFactory(ReactContext context) { return new RawResourceDataSourceFactory(context.getApplicationContext()); } private static DataSource.Factory buildDataSourceFactory(Context context, DefaultBandwidthMeter bandwidthMeter) { Context appContext = context.getApplicationContext(); return new DefaultDataSourceFactory(appContext, bandwidthMeter, buildHttpDataSourceFactory(appContext, bandwidthMeter)); private static DataSource.Factory buildDataSourceFactory(ReactContext context, DefaultBandwidthMeter bandwidthMeter) { return new DefaultDataSourceFactory(context, bandwidthMeter, buildHttpDataSourceFactory(context, bandwidthMeter)); } private static HttpDataSource.Factory buildHttpDataSourceFactory(Context context, DefaultBandwidthMeter bandwidthMeter) { private static HttpDataSource.Factory buildHttpDataSourceFactory(ReactContext context, DefaultBandwidthMeter bandwidthMeter) { OkHttpClient client = OkHttpClientProvider.getOkHttpClient(); CookieJarContainer container = (CookieJarContainer) client.cookieJar(); ForwardingCookieHandler handler = new ForwardingCookieHandler(context); container.setCookieJar(new JavaNetCookieJar(handler)); return new OkHttpDataSourceFactory(OkHttpClientProvider.getOkHttpClient(), getUserAgent(context), bandwidthMeter); } Loading android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +5 −11 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java: 5 added lines, 11 removed lines. Original line number Diff line number Diff line Loading @@ -124,14 +124,13 @@ class ReactExoplayerView extends FrameLayout implements public ReactExoplayerView(ThemedReactContext context) { super(context); this.themedReactContext = context; createViews(); this.eventEmitter = new VideoEventEmitter(context); this.themedReactContext = context; audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); themedReactContext.addLifecycleEventListener(this); audioBecomingNoisyReceiver = new AudioBecomingNoisyReceiver(themedReactContext); initializePlayer(); } Loading Loading @@ -353,7 +352,7 @@ class ReactExoplayerView extends FrameLayout implements * @return A new DataSource factory. */ private DataSource.Factory buildDataSourceFactory(boolean useBandwidthMeter) { return DataSourceUtil.getDefaultDataSourceFactory(getContext(), useBandwidthMeter ? BANDWIDTH_METER : null); return DataSourceUtil.getDefaultDataSourceFactory(this.themedReactContext, useBandwidthMeter ? BANDWIDTH_METER : null); } // AudioManager.OnAudioFocusChangeListener implementation Loading Loading @@ -482,7 +481,6 @@ class ReactExoplayerView extends FrameLayout implements @Override public void onPlayerError(ExoPlaybackException e) { String errorString = null; Exception ex = e; if (e.type == ExoPlaybackException.TYPE_RENDERER) { Exception cause = e.getRendererException(); if (cause instanceof MediaCodecRenderer.DecoderInitializationException) { Loading @@ -505,12 +503,8 @@ class ReactExoplayerView extends FrameLayout implements } } } else if (e.type == ExoPlaybackException.TYPE_SOURCE) { ex = e.getSourceException(); errorString = getResources().getString(R.string.unrecognized_media_format); } if (errorString != null) { eventEmitter.error(errorString, ex); eventEmitter.error(errorString, e); } playerNeedsSource = true; if (isBehindLiveWindow(e)) { Loading Loading @@ -549,7 +543,7 @@ class ReactExoplayerView extends FrameLayout implements this.srcUri = uri; this.extension = extension; this.mediaDataSourceFactory = DataSourceUtil.getDefaultDataSourceFactory(getContext(), BANDWIDTH_METER); this.mediaDataSourceFactory = DataSourceUtil.getDefaultDataSourceFactory(this.themedReactContext, BANDWIDTH_METER); if (!isOriginalSourceNull && !isSourceEqual) { reloadSource(); Loading @@ -568,7 +562,7 @@ class ReactExoplayerView extends FrameLayout implements this.srcUri = uri; this.extension = extension; this.mediaDataSourceFactory = DataSourceUtil.getRawDataSourceFactory(getContext()); this.mediaDataSourceFactory = DataSourceUtil.getRawDataSourceFactory(this.themedReactContext); if (!isOriginalSourceNull && !isSourceEqual) { reloadSource(); Loading Loading
android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java +21 −10 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/DataSourceUtil.java: 21 added lines, 10 removed lines. Original line number Diff line number Diff line package com.brentvatne.exoplayer; import android.content.Context; import android.content.ContextWrapper; import com.facebook.react.bridge.ReactContext; import com.facebook.react.modules.network.CookieJarContainer; import com.facebook.react.modules.network.ForwardingCookieHandler; import com.facebook.react.modules.network.OkHttpClientProvider; import com.google.android.exoplayer2.ext.okhttp.OkHttpDataSourceFactory; import com.google.android.exoplayer2.upstream.DataSource; Loading @@ -10,6 +14,10 @@ import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.util.Util; import okhttp3.Cookie; import okhttp3.JavaNetCookieJar; import okhttp3.OkHttpClient; public class DataSourceUtil { private DataSourceUtil() { Loading @@ -23,14 +31,14 @@ public class DataSourceUtil { DataSourceUtil.userAgent = userAgent; } public static String getUserAgent(Context context) { public static String getUserAgent(ReactContext context) { if (userAgent == null) { userAgent = Util.getUserAgent(context.getApplicationContext(), "ReactNativeVideo"); userAgent = Util.getUserAgent(context, "ReactNativeVideo"); } return userAgent; } public static DataSource.Factory getRawDataSourceFactory(Context context) { public static DataSource.Factory getRawDataSourceFactory(ReactContext context) { if (rawDataSourceFactory == null) { rawDataSourceFactory = buildRawDataSourceFactory(context); } Loading @@ -41,7 +49,7 @@ public class DataSourceUtil { DataSourceUtil.rawDataSourceFactory = factory; } public static DataSource.Factory getDefaultDataSourceFactory(Context context, DefaultBandwidthMeter bandwidthMeter) { public static DataSource.Factory getDefaultDataSourceFactory(ReactContext context, DefaultBandwidthMeter bandwidthMeter) { if (defaultDataSourceFactory == null) { defaultDataSourceFactory = buildDataSourceFactory(context, bandwidthMeter); } Loading @@ -52,17 +60,20 @@ public class DataSourceUtil { DataSourceUtil.defaultDataSourceFactory = factory; } private static DataSource.Factory buildRawDataSourceFactory(Context context) { private static DataSource.Factory buildRawDataSourceFactory(ReactContext context) { return new RawResourceDataSourceFactory(context.getApplicationContext()); } private static DataSource.Factory buildDataSourceFactory(Context context, DefaultBandwidthMeter bandwidthMeter) { Context appContext = context.getApplicationContext(); return new DefaultDataSourceFactory(appContext, bandwidthMeter, buildHttpDataSourceFactory(appContext, bandwidthMeter)); private static DataSource.Factory buildDataSourceFactory(ReactContext context, DefaultBandwidthMeter bandwidthMeter) { return new DefaultDataSourceFactory(context, bandwidthMeter, buildHttpDataSourceFactory(context, bandwidthMeter)); } private static HttpDataSource.Factory buildHttpDataSourceFactory(Context context, DefaultBandwidthMeter bandwidthMeter) { private static HttpDataSource.Factory buildHttpDataSourceFactory(ReactContext context, DefaultBandwidthMeter bandwidthMeter) { OkHttpClient client = OkHttpClientProvider.getOkHttpClient(); CookieJarContainer container = (CookieJarContainer) client.cookieJar(); ForwardingCookieHandler handler = new ForwardingCookieHandler(context); container.setCookieJar(new JavaNetCookieJar(handler)); return new OkHttpDataSourceFactory(OkHttpClientProvider.getOkHttpClient(), getUserAgent(context), bandwidthMeter); } Loading
android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java +5 −11 Changes for android-exoplayer/src/main/java/com/brentvatne/exoplayer/ReactExoplayerView.java: 5 added lines, 11 removed lines. Original line number Diff line number Diff line Loading @@ -124,14 +124,13 @@ class ReactExoplayerView extends FrameLayout implements public ReactExoplayerView(ThemedReactContext context) { super(context); this.themedReactContext = context; createViews(); this.eventEmitter = new VideoEventEmitter(context); this.themedReactContext = context; audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); themedReactContext.addLifecycleEventListener(this); audioBecomingNoisyReceiver = new AudioBecomingNoisyReceiver(themedReactContext); initializePlayer(); } Loading Loading @@ -353,7 +352,7 @@ class ReactExoplayerView extends FrameLayout implements * @return A new DataSource factory. */ private DataSource.Factory buildDataSourceFactory(boolean useBandwidthMeter) { return DataSourceUtil.getDefaultDataSourceFactory(getContext(), useBandwidthMeter ? BANDWIDTH_METER : null); return DataSourceUtil.getDefaultDataSourceFactory(this.themedReactContext, useBandwidthMeter ? BANDWIDTH_METER : null); } // AudioManager.OnAudioFocusChangeListener implementation Loading Loading @@ -482,7 +481,6 @@ class ReactExoplayerView extends FrameLayout implements @Override public void onPlayerError(ExoPlaybackException e) { String errorString = null; Exception ex = e; if (e.type == ExoPlaybackException.TYPE_RENDERER) { Exception cause = e.getRendererException(); if (cause instanceof MediaCodecRenderer.DecoderInitializationException) { Loading @@ -505,12 +503,8 @@ class ReactExoplayerView extends FrameLayout implements } } } else if (e.type == ExoPlaybackException.TYPE_SOURCE) { ex = e.getSourceException(); errorString = getResources().getString(R.string.unrecognized_media_format); } if (errorString != null) { eventEmitter.error(errorString, ex); eventEmitter.error(errorString, e); } playerNeedsSource = true; if (isBehindLiveWindow(e)) { Loading Loading @@ -549,7 +543,7 @@ class ReactExoplayerView extends FrameLayout implements this.srcUri = uri; this.extension = extension; this.mediaDataSourceFactory = DataSourceUtil.getDefaultDataSourceFactory(getContext(), BANDWIDTH_METER); this.mediaDataSourceFactory = DataSourceUtil.getDefaultDataSourceFactory(this.themedReactContext, BANDWIDTH_METER); if (!isOriginalSourceNull && !isSourceEqual) { reloadSource(); Loading @@ -568,7 +562,7 @@ class ReactExoplayerView extends FrameLayout implements this.srcUri = uri; this.extension = extension; this.mediaDataSourceFactory = DataSourceUtil.getRawDataSourceFactory(getContext()); this.mediaDataSourceFactory = DataSourceUtil.getRawDataSourceFactory(this.themedReactContext); if (!isOriginalSourceNull && !isSourceEqual) { reloadSource(); Loading