使用reset()和release()调用时出现Android MediaPlayer错误

使用reset()和release()调用时出现Android MediaPlayer错误,android,media-player,Android,Media Player,我看到的错误是对reset()和release()的调用从未返回,从而使我的应用程序处于无限期停止状态。不管我是在重置()之前调用stop()还是在释放()之前调用release(),挂起总是可以重现的 有没有人在MediaPlayer锁定时遇到过类似的问题?有什么建议吗?我正在开发一个多线程应用程序 DDMS在查看保持的线程时报告以下内容: 类|方法|文件|行|本机 android.media.MediaPlayer\u发布MediaPlayer.java-2 true android.med

我看到的错误是对reset()和release()的调用从未返回,从而使我的应用程序处于无限期停止状态。不管我是在重置()之前调用stop()还是在释放()之前调用release(),挂起总是可以重现的

有没有人在MediaPlayer锁定时遇到过类似的问题?有什么建议吗?我正在开发一个多线程应用程序

DDMS在查看保持的线程时报告以下内容:

类|方法|文件|行|本机

android.media.MediaPlayer\u发布MediaPlayer.java-2 true
android.media.MediaPlayer发布MediaPlayer.java 1049错误


您可能偶然发现了此错误:。不幸的是,它已经存在了一段时间,我不希望很快得到解决。

在android 2.2中调用MediaRecorder.release()时,我也面临这个问题

有时它没有响应,我的程序流就卡在上面了。 它导致我的UI冻结,并在稍后带来ANR

顺便说一句,我的客户说他们在使用安卓2.3.3时没有面对这个问题

这:

这是:

如果您只是想从头开始播放歌曲/声音,您可以编写一个重置函数,该函数只需执行以下操作:

mediaplayer.seekTo(0)


我改变了我的
stop()到:暂停,然后搜索到。

如果您正在为API级别16或更高版本开发,我强烈建议您扔掉蹩脚的MediaPlayer,从Google使用

我做到了,再也没有回头看。因为我也支持API级别15,所以我有一个抽象概念,在API中使用标准MediaPlayer,在16(或17)中使用Exoplayer


这并不完美,但它要好得多,我也看到了更好的缓冲。

主要的是停止播放。我也遇到了这个问题。有什么解决办法吗?@Judy我们从未找到解决办法。我们尝试了很多组合和破解。我们最终不再使用Android顶级媒体API。不推荐所有人使用,但在我们的情况下,我们需要完全控制播放,所以我们从头开始构建播放器。