MediaContent
借助原生广告和自定义原生广告格式,您可以访问MediaContent
对象,该对象用于获取与媒体内容(可以是视频或者图片)相关的信息。该对象也可用于控制视频广告播放和监听播放事件。您可以通过调用 NativeAd.getMediaContent()
来获取 MediaContent
对象。
MediaContent
对象包含视频的宽高比和时长等信息。以下代码段显示了如何获取原生广告的宽高比和时长。
Kotlin
if (myNativeAd.mediaContent.hasVideoContent) {
val mediaAspectRatio: Float = myNativeAd.mediaContent.aspectRatio
val duration: Float = myNativeAd.mediaContent.duration
// ...
}
Java
if (myNativeAd.getMediaContent().getHasVideoContent()) {
float mediaAspectRatio = myNativeAd.getMediaContent().getAspectRatio();
float duration = myNativeAd.getMediaContent().getDuration();
// ...
}
视频事件的回调
如需处理特定视频事件,请编写一个扩展抽象 VideoLifecycleCallbacks
类的类,并对 VideoController
调用 setVideoLifecycleCallbacks()
。然后,仅替换所需的回调。
Kotlin
val videoController = myNativeAd.mediaContent.videoController
videoController.videoLifecycleCallbacks = object : VideoController.VideoLifecycleCallbacks {
override fun onVideoStart() {
Log.d("MyApp", "Video Started")
}
override fun onVideoPlay() {
Log.d("MyApp", "Video Played")
}
override fun onVideoPause() {
Log.d("MyApp", "Video Paused")
}
override fun onVideoEnd() {
Log.d("MyApp", "Video Ended")
}
override fun onVideoMute(boolean isMuted) {
Log.d("MyApp", "Video Muted")
}
}
Java
VideoController videoController = myNativeAd.getMediaContent().getVideoController();
videoController.setVideoLifecycleCallbacks(new VideoLifecycleCallbacks() {
@Override
public void onVideoStart() {
Log.d("MyApp", "Video Started");
}
@Override
public void onVideoPlay() {
Log.d("MyApp", "Video Played");
}
@Override
public void onVideoPause() {
Log.d("MyApp", "Video Paused");
}
@Override
public void onVideoEnd() {
Log.d("MyApp", "Video Ended");
}
@Override
public void onVideoMute(boolean isMuted) {
Log.d("MyApp", "Video Muted");
}
});