Android 11 上的 SoundPool 问题

Posted

技术标签:

【中文标题】Android 11 上的 SoundPool 问题【英文标题】:SoundPool issue on Android 11 【发布时间】:2020-09-23 17:41:31 【问题描述】:

soundPool Api 似乎在 android 11 上无法正常工作。我听到的声音像是慢动作。有没有任何相关的问题?

我的代码


 private SoundPool soundPool;
 private int wonSound;

...

 soundPool = new SoundPool.Builder().setMaxStreams(1).build();
 wonSound = soundPool.load(this, R.raw.slot_win_1, 1);

...

 soundPool.play(wonSound, 1, 1, 0, 0, 0);


【问题讨论】:

【参考方案1】:

根据文档:

https://developer.android.com/reference/android/media/SoundPool#play(int,%20float,%20float,%20int,%20int,%20float)?

SoundPool 的函数 play() 将其作为最后一个参数:

float:播放速率(1.0 = 正常播放,范围 0.5 到 2.0)

因此,低于 1 的播放速率听起来会比原始声音慢。要以原始播放速率播放声音,您应该像这样调用 play():

soundPool.play(wonSound, 1, 1, 0, 0, 1);

【讨论】:

以上是关于Android 11 上的 SoundPool 问题的主要内容,如果未能解决你的问题,请参考以下文章

Android SoundPool 剪切声音文件短

Android 游戏 - SoundPool 没有在 Motorola Droid X2 上播放声音

在 Android 中从内存中加载声音

AudioTrack、SoundPool 或 MediaPlayer 我应该使用哪个?

Android SoundPool 不打开很多曲目/如何创建 CBR OGG 文件?

如何停止 SoundPool 中的所有声音?