androidx / media

Jetpack Media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android
Apache License 2.0
1.37k stars 324 forks source link

[Google DAI + HLS] Playback is crashed at the ImaServerSideAdInsertionMediaSource #1520

Open devno44 opened 1 week ago

devno44 commented 1 week ago

Version

Media3 1.3.1

More version details

No response

Devices that reproduce the issue

All devices

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Not tested

Reproduction steps

  1. Play the SSAI content (Google DAI + HLS protocol)
  2. While playing the content, when the Ad is played App is crashed.

Expected result

App is not crashed

Actual result

Playback crashes with the following stack trace:

Process: com.xx.qa, PID: 14899 java.lang.IllegalArgumentException
      at androidx.media3.common.util.Assertions.checkArgument(Assertions.java:40)
      at androidx.media3.exoplayer.source.ads.ServerSideAdInsertionMediaSource.setAdPlaybackStates(ServerSideAdInsertionMediaSource.java:179)
      at androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource.invalidateServerSideAdInsertionAdPlaybackState(ImaServerSideAdInsertionMediaSource.java:790)
      at androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource.setAdPlaybackState(ImaServerSideAdInsertionMediaSource.java:749)
      at androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource.access$2300(ImaServerSideAdInsertionMediaSource.java:116)
      at androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource$SinglePeriodLiveAdEventListener.onAdEvent(ImaServerSideAdInsertionMediaSource.java:1491)
      at androidx.media3.exoplayer.ima.ImaServerSideAdInsertionMediaSource$ComponentListener.onAdEvent(ImaServerSideAdInsertionMediaSource.java:1017)
      at com.google.ads.interactivemedia.v3.impl.zzab.zzb(com.google.ads.interactivemedia.v3:interactivemedia@@3.31.0:25)
      at com.google.ads.interactivemedia.v3.impl.zzbr.zzb(com.google.ads.interactivemedia.v3:interactivemedia@@3.31.0:12)
      at com.google.ads.interactivemedia.v3.impl.zzau.zzl(com.google.ads.interactivemedia.v3:interactivemedia@@3.31.0:50)
      at com.google.ads.interactivemedia.v3.impl.zzbb.zzf(com.google.ads.interactivemedia.v3:interactivemedia@@3.31.0:7)
      at com.google.ads.interactivemedia.v3.impl.zzax.onPostMessage(com.google.ads.interactivemedia.v3:interactivemedia@@3.31.0:2)
      at androidx.webkit.internal.WebMessageListenerAdapter.onPostMessage(WebMessageListenerAdapter.java:55)
      at java.lang.reflect.Method.invoke(Native Method)
      at org.chromium.support_lib_boundary.util.BoundaryInterfaceReflectionUtil$InvocationHandlerWithDelegateGetter.invoke(BoundaryInterfaceReflectionUtil.java:162)
      at java.lang.reflect.Proxy.invoke(Proxy.java:1006)
      at $Proxy13.onPostMessage(Unknown Source)
      at WV.sR.a(chromium-TrichromeWebViewGoogle.aab-stable-647807130:77)
      at WV.hY.run(chromium-TrichromeWebViewGoogle.aab-stable-647807130:28)
      at android.os.Handler.handleCallback(Handler.java:938)
      at android.os.Handler.dispatchMessage(Handler.java:99)
      at android.os.Looper.loopOnce(Looper.java:201)
      at android.os.Looper.loop(Looper.java:288)
      at android.app.ActivityThread.main(ActivityThread.java:7839)
      at java.lang.reflect.Method.invoke(Native Method)
      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

Media

Not applicable

Bug Report

devno44 commented 1 week ago

This error doesn't happen all the time, it only happens occasionally when the Ad is played, and will probably be difficult to reproduce. Therefore, is there any way to avoid the app crashing after this error occurs? For example, using try-catch?

marcbaechinger commented 6 days ago

Can you provide us with an assetKey to test and repro with?

devno44 commented 6 days ago

@marcbaechinger Like I said before, I'm not sure how it's reproduced, it doesn't happen often, it happens occasionally, and it's not always reproducible. This crash is also reported a lot on firebase from our users, but we don't know how to investigate what the cause is.

marcbaechinger commented 5 days ago

Thanks for your response. I understand it doesn't repro easily but without having a stream that is producing the problem, it is hard for me to do something.

An assetKey of a stream that produces the problem would make this issue actionable for me. If you're unable to share test content publicly, please send them to android-media-github@google.com using a subject in the format "Issue #1520". Please also update this issue to indicate you’ve done this.