【问题标题】:Exoplayer setPlayWhenReady crashExoplayer setPlayWhenReady 崩溃
【发布时间】:2018-09-03 14:46:28
【问题描述】:

我认为我的播放器类的某个地方有问题。我通过嵌入在我的应用程序中的崩溃报告 SDK 注意到了这一点。我暂时不发布我的代码,因为错误的堆栈跟踪似乎与我的任何代码都无关。但我可能错了(当然我错了)。这是崩溃的堆栈跟踪:

com.google.android.exoplayer2.DefaultControlDispatcher.dispatchSetPlayWhenReady
DefaultControlDispatcher.java - line 28
java.lang.NullPointerException: Attempt to invoke interface method 'void com.google.android.exoplayer2.Player.setPlayWhenReady(boolean)' on a null object reference
com.google.android.exoplayer2.DefaultControlDispatcher.dispatchSetPlayWhenReady DefaultControlDispatcher.java:28
com.google.android.exoplayer2.ui.PlayerControlView$ComponentListener.onClick PlayerControlView.java:1116
android.view.View.performClick View.java:5265
android.view.View$PerformClick.run View.java:21534
android.os.Handler.handleCallback Handler.java:815
android.os.Handler.dispatchMessage Handler.java:104
android.os.Looper.loop Looper.java:207
android.app.ActivityThread.main ActivityThread.java:5896
java.lang.reflect.Method.invoke Method.java
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run ZygoteInit.java:789
com.android.internal.os.ZygoteInit.main ZygoteInit.java:679

我的理解是,在连接不佳的情况下,播放器会停止并显示控制视图(我能够复制这种行为)。当我点击播放按钮时,会发生这种情况。

谢谢。

【问题讨论】:

    标签: android video playback exoplayer


    【解决方案1】:

    由于没有答案,我自己检查,直到找到问题的原因。 崩溃是由于玩家在输入某种错误后变为空(在我的情况下这是与连接相关的问题)。 由于控制视图由 Exo 自己处理,因此崩溃发生在库内部类中,我想播放器被内部例程设置为 null。当 Exoplayer 进入错误状态时,我们附加到它的 Player.DefaultEventListener 进入回调 onPlayerError(e: ExoPlaybackException?)。 在这里,我处理了重新创建播放器并将流恢复到上一个​​搜索位置(如果存在)或开始处的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-10
      • 2022-11-02
      • 1970-01-01
      • 2011-11-22
      • 2021-05-14
      • 1970-01-01
      • 2016-11-09
      • 2018-12-11
      相关资源
      最近更新 更多