前言
最近在用 Android 下的 MediaPlayer 发出声音,然而发现不知道为什么 8 秒的音频每次两三秒就自动结束了,Log 上还记录有 Warning:Failed to call close. 之类的,可是难以确定是哪里关闭的 Mediaplayer,因为代码的主体是 Fork 的他人的项目。
在 https://blog.csdn.net/weixin_39644713/article/details/117602300 找到了原因:错误的将 MediaPlayer 对象的引用放到 OnCreate 函数中了,OnCreate 函数结束后,该对象的引用就被释放,于是 MediaPlayer就成了垃圾被清理了……
很好理解问题出在哪,但是真的想不到啊
正文
解决方式很简单,在 Activity 的声明里留一个对播放器对象的引用即可,没必要扔代码了。