protected MediaPlayer _mediaPlayer;
protected void playFromResource(int resId)
{
if (_mediaPlayer != null)
{
_mediaPlayer.stop();
_mediaPlayer.release();
}
_mediaPlayer = MediaPlayer.create(this, resId);
_mediaPlayer.start();
}
此代码用于在仿真器和设备上正常工作。自一段时间以来(我认为是因为我更新到ADT r10),它只适用于设备。在仿真器上不再有声音,并且应用程序在通过on _mediaPlayer.release()
时(第二次调用该函数)冻结。我能够通过用reset()
替换stop()
和release()
来防止应用程序崩溃,但它并未解决主要问题:模拟器上没有声音。从r10开始,MediaPlayer不再在模拟器上工作了吗?
日志文件给我看这些一堆(仅在仿真器)只是调用start()
03-09 19后:14:30.716:WARN/AudioTrack(34):obtainBuffer超时(被 的CPU挂?)0x1afb8用户= 00001e00,服务器= 00000600
任何线索????
什么模拟器版本,你运行,什么设备? – 2011-03-10 13:51:49
我尝试了2.1更新1,2.2和3.0。相同(缺少)结果 – 2011-03-10 14:10:37
我的ADT版本是10.0.0.v201102162101-104271 – 2011-03-10 14:18:23