mirror of
https://github.com/androidx/media.git
synced 2025-05-06 15:10:34 +08:00
Allow apps to add a VideoAdPlayerCallback
Issue: #7944 PiperOrigin-RevId: 335012643
This commit is contained in:
parent
13d8860221
commit
88abe26ec3
@ -36,6 +36,8 @@
|
|||||||
* IMA extension:
|
* IMA extension:
|
||||||
* Fix position reporting after fetch errors
|
* Fix position reporting after fetch errors
|
||||||
([#7956](https://github.com/google/ExoPlayer/issues/7956)).
|
([#7956](https://github.com/google/ExoPlayer/issues/7956)).
|
||||||
|
* Allow apps to specify a `VideoAdPlayerCallback`
|
||||||
|
([#7944](https://github.com/google/ExoPlayer/issues/7944)).
|
||||||
|
|
||||||
### 2.12.0 (2020-09-11) ###
|
### 2.12.0 (2020-09-11) ###
|
||||||
|
|
||||||
|
@ -125,6 +125,7 @@ public final class ImaAdsLoader
|
|||||||
@Nullable private ImaSdkSettings imaSdkSettings;
|
@Nullable private ImaSdkSettings imaSdkSettings;
|
||||||
@Nullable private AdErrorListener adErrorListener;
|
@Nullable private AdErrorListener adErrorListener;
|
||||||
@Nullable private AdEventListener adEventListener;
|
@Nullable private AdEventListener adEventListener;
|
||||||
|
@Nullable private VideoAdPlayer.VideoAdPlayerCallback videoAdPlayerCallback;
|
||||||
@Nullable private Set<UiElement> adUiElements;
|
@Nullable private Set<UiElement> adUiElements;
|
||||||
@Nullable private Collection<CompanionAdSlot> companionAdSlots;
|
@Nullable private Collection<CompanionAdSlot> companionAdSlots;
|
||||||
private long adPreloadTimeoutMs;
|
private long adPreloadTimeoutMs;
|
||||||
@ -190,6 +191,22 @@ public final class ImaAdsLoader
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a callback to receive video ad player events. Note that these events are handled
|
||||||
|
* internally by the IMA SDK and this ads loader. For analytics and diagnostics, new
|
||||||
|
* implementations should generally use events from the top-level {@link Player} listeners
|
||||||
|
* instead of setting a callback via this method.
|
||||||
|
*
|
||||||
|
* @param videoAdPlayerCallback The callback to receive video ad player events.
|
||||||
|
* @return This builder, for convenience.
|
||||||
|
* @see com.google.ads.interactivemedia.v3.api.player.VideoAdPlayer.VideoAdPlayerCallback
|
||||||
|
*/
|
||||||
|
public Builder setVideoAdPlayerCallback(
|
||||||
|
VideoAdPlayer.VideoAdPlayerCallback videoAdPlayerCallback) {
|
||||||
|
this.videoAdPlayerCallback = checkNotNull(videoAdPlayerCallback);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the ad UI elements to be rendered by the IMA SDK.
|
* Sets the ad UI elements to be rendered by the IMA SDK.
|
||||||
*
|
*
|
||||||
@ -524,6 +541,9 @@ public final class ImaAdsLoader
|
|||||||
handler = Util.createHandler(getImaLooper(), /* callback= */ null);
|
handler = Util.createHandler(getImaLooper(), /* callback= */ null);
|
||||||
componentListener = new ComponentListener();
|
componentListener = new ComponentListener();
|
||||||
adCallbacks = new ArrayList<>(/* initialCapacity= */ 1);
|
adCallbacks = new ArrayList<>(/* initialCapacity= */ 1);
|
||||||
|
if (builder.videoAdPlayerCallback != null) {
|
||||||
|
adCallbacks.add(builder.videoAdPlayerCallback);
|
||||||
|
}
|
||||||
updateAdProgressRunnable = this::updateAdProgress;
|
updateAdProgressRunnable = this::updateAdProgress;
|
||||||
adInfoByAdMediaInfo = HashBiMap.create();
|
adInfoByAdMediaInfo = HashBiMap.create();
|
||||||
supportedMimeTypes = Collections.emptyList();
|
supportedMimeTypes = Collections.emptyList();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user