Commit 008d38d8 by andrewlewis Committed by Ian Baker

Reattach player to ads loader on resume

When pausing and resuming a playback using an AdsLoader
it is necessary to call setPlayer again. This fixes an
issue where playback was stuck in the buffering state
when pausing and resuming an ad playback in the demo app.

PiperOrigin-RevId: 308582143
parent a7c301cb
......@@ -448,7 +448,7 @@ public class PlayerActivity extends AppCompatActivity
* otherwise.
*/
@Nullable
private AdsLoader createAdsLoader(Uri adTagUri) {
private AdsLoader maybeCreateAdsLoader(Uri adTagUri) {
// Load the extension source using reflection so the demo app doesn't have to depend on it.
try {
Class<?> loaderClass = Class.forName("com.google.android.exoplayer2.ext.ima.ImaAdsLoader");
......@@ -593,14 +593,14 @@ public class PlayerActivity extends AppCompatActivity
releaseAdsLoader();
loadedAdTagUri = adTagUri;
}
// The ads loader is reused for multiple playbacks, so that ad playback can resume.
if (adsLoader == null) {
// The ads loader is reused for multiple playbacks, so that ad playback can resume.
adsLoader = createAdsLoader(adTagUri);
if (adsLoader != null) {
adsLoader.setPlayer(player);
} else {
showToast(R.string.ima_not_loaded);
}
adsLoader = maybeCreateAdsLoader(adTagUri);
}
if (adsLoader != null) {
adsLoader.setPlayer(player);
} else {
showToast(R.string.ima_not_loaded);
}
return adsLoader;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment