MediaContent
ネイティブ広告およびカスタム ネイティブ広告フォーマットでは、動画や画像といったメディア コンテンツに関する情報を取得するためのMediaContent オブジェクトを使用できます。このオブジェクトは、動画広告の再生をコントロールし、再生イベントをリッスンするためにも使用されます。MediaContent オブジェクトを取得するには、NativeAd.getMediaContent() を呼び出します。
MediaContent オブジェクトには、動画のアスペクト比や再生時間などの情報が含まれます。以下のスニペットは、ネイティブ広告のアスペクト比と再生時間を取得する方法を示しています。
Java
if (nativeAd.getMediaContent() != null) {
  MediaContent mediaContent = nativeAd.getMediaContent();
  float mediaAspectRatio = mediaContent.getAspectRatio();
  if (mediaContent.hasVideoContent()) {
    float duration = mediaContent.getDuration();
  }
}Kotlin
nativeAd.mediaContent?.let { mediaContent ->
  val mediaAspectRatio: Float = mediaContent.aspectRatio
  if (mediaContent.hasVideoContent()) {
    val duration: Float = mediaContent.duration
  }
}動画イベントのコールバック
特定の動画イベントを処理するには、抽象 VideoLifecycleCallbacks クラスを拡張するクラスを作成し、VideoController で setVideoLifecycleCallbacks() を呼び出します。次に、目的のコールバックのみをオーバーライドします。
Java
if (nativeAd.getMediaContent() != null) {
  VideoController videoController = nativeAd.getMediaContent().getVideoController();
  if (videoController != null) {
    videoController.setVideoLifecycleCallbacks(
        new VideoController.VideoLifecycleCallbacks() {
          @Override
          public void onVideoStart() {
            Log.d(TAG, "Video started.");
          }
          @Override
          public void onVideoPlay() {
            Log.d(TAG, "Video played.");
          }
          @Override
          public void onVideoPause() {
            Log.d(TAG, "Video paused.");
          }
          @Override
          public void onVideoEnd() {
            Log.d(TAG, "Video ended.");
          }
          @Override
          public void onVideoMute(boolean isMuted) {
            Log.d(TAG, "Video isMuted: " + isMuted + ".");
          }
        });
  }
}Kotlin
val videoLifecycleCallbacks =
  object : VideoController.VideoLifecycleCallbacks() {
    override fun onVideoStart() {
      Log.d(TAG, "Video started.")
    }
    override fun onVideoPlay() {
      Log.d(TAG, "Video played.")
    }
    override fun onVideoPause() {
      Log.d(TAG, "Video paused.")
    }
    override fun onVideoEnd() {
      Log.d(TAG, "Video ended.")
    }
    override fun onVideoMute(isMuted: Boolean) {
      Log.d(TAG, "Video isMuted: $isMuted.")
    }
  }
nativeAd.mediaContent?.videoController?.videoLifecycleCallbacks = videoLifecycleCallbacks