最近在维护公司的一个项目时,该项目是一个小游戏,玩过一局之后还可以再来一局,复用原来的Activity。在这个activity里实例化了5个MediaPlayer。测试部的同事发现,在玩的过程中会出现 突然就有几个声音源没有了声音,在玩过一局两局之后,这 种现象就非常明显。
刚开始知道这个BUG时,事实上,我对MediaPlayer的了解甚微,真不知如何下手去分析这样的一个问题。我先看了百度上的博客,对其进行了初步的了解,然后总感觉还是不够,于是又去翻官方的开发文档。发现了一个非常重要的图:
这个图说明了MediaPlayer的状态,讲述Mediaplayer的内部状态变化,根据代码,我事际上是没有发现有什么错误的迹象,因为它调用Reset==》setDataSource===>prepare===>start这个流程 没有任务错误。
幸好 MediaPlayer的开发提供了一个接口