protected MediaPlayer _mediaPlayer;
protected void playFromResource(int resId)
{
if (_mediaPlayer != null)
{
_mediaPlayer.stop();
_mediaPlayer.release();
}
_mediaPlayer = MediaPlayer.create(this, resId);
_mediaPlayer.start();
}
Run Code Online (Sandbox Code Playgroud)
此代码用于在模拟器和设备上正常工作.从一段时间以来(我认为自从我更新到ADT r10以来)它只适用于设备.在仿真器上不再有声音,应用程序在通过时会冻结on _mediaPlayer.release()(第二次调用该函数).我能够从通过更换崩溃保持应用程序stop(),并release()通过reset(),但它并没有解决的主要问题:有在模拟器上没有声音.
日志文件在调用之后显示了一堆这些(仅在模拟器上) start()
03-09 19:14:30.716:WARN/AudioTrack(34):obtainBuffer超时(CPU是否挂起?)0x1afb8 user = 00001e00,server = 00000600
任何线索????
我在 ubuntu-19.10 中运行 android 模拟器,我尝试了以下解决方案但没有结果,
错误,
1:10 PM Emulator: pulseaudio: pa_context_connect() failed
1:10 PM Emulator: pulseaudio: Reason: Connection refused
1:10 PM Emulator: pulseaudio: Failed to initialize PA contextaudio: Could not init `pa' audio driver
Run Code Online (Sandbox Code Playgroud)
关于我尝试过的解决方案的一些说明,
尝试Link-1 时,我在设置中看不到“Qemu-system”。还创建了许多不同版本的 AVD,但似乎确实有效。
在尝试Link-2 pulseaudio -D命令错误后。
我也尝试过Link-3,它看起来像是多篇博文中广泛推荐的解决方案。但我仍然在模拟器启动时发现同样的错误。我想指出的是,我不够聪明,无法理解此解决方案。
提前感谢您的帮助。
那里.我正在使用Genymotion进行测试.我正在开发一个Android应用程序.这个应用程序可以发出声音.然后我试着测试我的Android应用程序.但是,它不会发出声音.
我的环境是Macbook.和虚拟框是5.1.和VMDevice是谷歌Nexus 4与API级别22.即使我可以改变genymotion上的声音音量,这也不会发出任何声音.
我的虚拟设备设置就在这里.
当我启动 Android Emulator 时,Mac 桌面上的音频停止。当我关闭模拟器时它会再次启动。