2011-03-10 65 views
10
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

任何线索????

+0

什么模拟器版本,你运行,什么设备? – 2011-03-10 13:51:49

+0

我尝试了2.1更新1,2.2和3.0。相同(缺少)结果 – 2011-03-10 14:10:37

+0

我的ADT版本是10.0.0.v201102162101-104271 – 2011-03-10 14:18:23

回答

4

看起来问题只在我的电脑上。我在另一台电脑上试了一下,效果很好。当我升级到ADT的r10时,我遇到了一些问题。也许我的开发环境有问题。

+0

看起来它是由最新的Windows Update(我在Windows XP上)引起的。我在第二台运行Windows的计算机上运行了Windows更新(它安装了5个更新),并且它不再工作。 – 2011-03-11 14:56:49

+2

经过更多测试后,我发现第二台计算机上的问题与仿真器快照有关。一些Windows更新后,必须重新创建模拟器快照,以使其正常工作。这解决了第二台计算机上的问题。对于第一台计算机,如果从快照启动模拟器(即使重新创建模拟器),我仍然会遇到问题。如果我从新的模拟器会话开始(没有快照),它工作正常 – 2011-03-18 14:04:30

7

我在mac os上也看到了这个问题。在我的情况下,它会在您为模拟器启用“快照”时发生。
http://code.google.com/p/android/issues/detail?id=14953
您将不得不删除模拟器并创建一个新的模块,但不启用“快照”。

+0

是的,'快照'也给我造成了问题。 – cucko 2013-05-25 10:16:37

7

我在我的MacBook Pro上遇到了这个问题,发现我必须在启动模拟器之前关闭蓝牙。

+0

这对我有用。我失去了15分钟解决这个问题... – sphere4a 2017-01-09 08:59:13

相关问题