原生影片廣告

選取平台: Android iOS

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");
  }
});