我正在尝试为我的应用程序播放背景声音,我使用SoundPool
类,我的问题是,仅当将循环参数设置为零时,声音才能很好地播放,但不适用于任何其他值。
我的初始化代码是:
soundpool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
soundsMap = new HashMap<Integer, Integer>();
soundsMap.put(1, soundpool.load(this, R.raw.soundfile_1, 1));
soundsMap.put(2, soundpool.load(this, R.raw.soundfile_2, 1));
我玩的代码是
soundpool.play(1, 0.9f, 0.9f, 1, -1, 1f);
正如我提到的那样,当我将(0)而不是(-1)作为循环值时声音有效,任何人都知道为什么(-1)或除(0)以外的任何其他值都不起作用(没有输出声音) ?
最佳答案
文件大小可能太大,无法循环播放,已在此处报告:http://www.talkandroid.com/android-forums/android-development-answers-tutorials-code-snippets/5132-soundpool-setloop-possible-bug.html
通常,对于SoundPool来说,文件大小似乎很大,因此也许应该将声音片段切成较小的片段和/或使用的MediaPlayer。
关于java - 三星Galaxy S3的SoundPool重复问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12338992/