protected MediaPlayer _mediaPlayer; protected void playFromResource(int resId) { if (_mediaPlayer != null) { _mediaPlayer.stop(); _mediaPlayer.release(); } _mediaPlayer = MediaPlayer.create(this,resId); _mediaPlayer.start(); }
此代码用于在仿真器和设备上正常工作.自从有一段时间(我认为是因为我更新到ADT r10),它只适用于设备.在仿真器上没有声音,当应用程序通过_mediaPlayer.release()(第二次调用该函数)时,应用程序将冻结.我能够通过将reset()和release()替换为reset()来保持应用程序不会崩溃,但它并不能解决主要问题:仿真器上没有声音.
03-09 19:14:30.716: WARN/AudioTrack(34): obtainBuffer timed out (is
the cpu pegged?) 0x1afb8 user=00001e00,server=00000600
任何线索????
解决方法
我也在mac os上看到这个问题.在我的情况下,当您为仿真器启用“快照”时,会发生这种情况.
http://code.google.com/p/android/issues/detail?id=14953 您将不得不删除模拟器并创建一个新的,而不启用“快照”.
http://code.google.com/p/android/issues/detail?id=14953 您将不得不删除模拟器并创建一个新的,而不启用“快照”.