首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaPlayer TimeoutException

MediaPlayer TimeoutException
EN

Stack Overflow用户
提问于 2014-01-04 04:47:27
回答 4查看 4K关注 0票数 10

我做了一个Android应用程序,现在它在Google Play上。但现在有人报告了一个崩溃,堆栈跟踪显示如下:

代码语言:javascript
复制
java.util.concurrent.TimeoutException: android.media.MediaPlayer.finalize() timed out         after 10 seconds
at android.media.MediaPlayer.native_finalize(Native Method)
at android.media.MediaPlayer.finalize(MediaPlayer.java:1960)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:187)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
at java.lang.Thread.run(Thread.java:856)

并且没有迹象表明我的某个包中有代码。我确实使用了MediaPlayer类。有谁能帮我吗?

杰西。

EN

回答 4

Stack Overflow用户

发布于 2015-02-06 17:59:02

在代码中调用MediaPlayer.release() (例如,在Activity.onPause()中)。这将导致在MediaPlayer.finalize()中做的工作更少,异常应该会消失。

票数 4
EN

Stack Overflow用户

发布于 2017-05-31 00:27:04

要捕获此错误,可以在片段或活动中实现android.media.MediaPlayer.OnErrorListener。

代码语言:javascript
复制
/*
     * Called to indicate an error. Parameters
     * 
     * mp the MediaPlayer the error pertains to what the type of error that has
     * occurred: MEDIA_ERROR_UNKNOWN MEDIA_ERROR_SERVER_DIED extra an extra
     * code, specific to the error. Typically implementation dependant. Returns 
     * True if the method handled the error, false if it didn't. Returning
     * false, or not having an OnErrorListener at all, will cause the
     * OnCompletionListener to be called.
     */
    @Override
    public boolean onError(MediaPlayer mp, int what, int extras) {

        return true;
    }

在创建MediaPlayer时,请确保调用

代码语言:javascript
复制
mediaPlayer.setOnErrorListener(this);
票数 1
EN

Stack Overflow用户

发布于 2015-10-28 15:08:24

一些想法:

  • 你找到是哪个线程在做这件事了吗?它似乎不是主用户界面线程,你应该能够捕捉到之前的answer,当你释放你的播放器时,你真的应该重新考虑一下。
  • 我仍然面临的一个错误是audioflinger服务。它会导致所有正在运行的媒体播放器进入错误状态(用错误代码(100,0)处理)。播放器进入错误状态,无法恢复到

的状态

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20912417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档