【发布时间】:2019-10-17 07:48:47
【问题描述】:
我注意到,在线程中播放带有 soundpool 的 SFX 时,它会在游戏中产生 FPS 减慢,而在主线程中播放 SFX 时,游戏不会减慢。
为什么 soundpool 从主线程播放效果更好?
这是播放调用:
streamID[sound] = soundPool.play(soundID[sound], getSoundEffectsVolume(), getSoundEffectsVolume(), 0, loop, 1);
【问题讨论】:
-
我们怎么知道不是你线程的实现,或者线程间的通信方案?
-
@greeble31 我的线程没有做任何特别的事情,每 33 ms 的周期只占用 1 或 2 ms 的 CPU,所以它等待 31 ms,线程通信方案是 android 默认方案,我没有做任何特别的事情
-
不确定“默认方案”是什么意思;如果您可以发布更多代码,或者准确解释您调用什么方法来传递消息,那将会很有帮助。另外,1.) 你如何确定 FPS 减速,2.) 减速的程度是多少,3.) 假设你使用
GLSurfaceView,你的onDrawFrame()平均执行大概需要多长时间?跨度>
标签: android multithreading soundpool android-sound