Car*_*les 15 android soundpool audiotrack
我在使用soundpool课程时遇到了麻烦.在这里:
在我的游戏应用程序(音乐应用程序顺便说一句)我需要同时重现至少32个短音,所以我声明我的声音池:
private SoundPool sp;
sp = new SoundPool(128, AudioManager.STREAM_MUSIC, 0);
Run Code Online (Sandbox Code Playgroud)
之后我加载了所需的所有MP3声音,大约80个声音,每个55KB.我没有加载所有声音的麻烦,但它的速度很慢!嗯,这不是问题.真正的麻烦是当我同时播放大约20个声音时,我的日志中出现错误:
ERROR/AudioFlinger(59): no more track names available
ERROR/AudioTrack(26349): AudioFlinger could not create track, status: -12
ERROR/SoundPool(26349): Error creating AudioTrack
Run Code Online (Sandbox Code Playgroud)
之后,我尝试播放的每个声音都会抛出相同的错误,并且无法播放声音.甚至没有另一个Activity/soundpool的声音.我不知道发生了什么或如何解决它!我应该更改声音文件的格式吗?播放声音后我应该释放记忆吗?
(我正在测试三星Galaxy S I9000,2.3.3操作系统.该应用程序是2.1)
这里有一些想法。一:SoundPool 构造函数的第一个参数不是要加载到其中的声音数量,而是要播放的并发流的最大数量。其次,SoundPool 的声音内存有限,大约为 1MB。因此,如果您一次可以加载的曲目数量达到了一些未记录的限制,我一点也不会感到惊讶。请注意,80 个声音乘以每个声音 55k 绝对超过 1MB。该限制是在将 mp3 解压缩为 SoundPool 内的音频数据之后的限制。
| 归档时间: |
|
| 查看次数: |
2958 次 |
| 最近记录: |