我有一个SoundPool[],我用它来播放混合的音频文件。Soundpool在一起播放没有任何问题,而且它非常高效!非常简单:
private SoundPool[] sound = new SoundPool[C.ROWS];
// every sound is initizialized with a load()
// and when asked...
public void play(int row, int variation) {
if (mute[row]) return;
if (variation != 0)
sound[row].play(variation_scheme[row][variation-1], volume[row], volume[row], PRI, 0, 1f);
}这只是为了说明一下!:)我不会放其他的代码,因为一切都运行得很好,这并不是什么问题。相反,我的问题是:
我如何将应用程序的整个输出重定向到一个文件,而不是(或除了)音频扬声器?换句话说,有两个主要的解决方案: 1.如何指示AudioPool将声音播放()到文件,而不是音频设备? 2.或者如何将应用程序(甚至所有电话)的所有音频输出重定向到文件?
谢谢。
发布于 2014-05-18 06:32:11
我发现记录音频的唯一方法是通过记录被按下的声音的每个信息,例如,持续时间(使用mediaplayer),soundID,毫秒时间戳来回放到毫秒,音量,速率(如果需要)。然后将它们写入文本文件(内部或外部)以供以后使用。创建一个播放系统,它解码文本文件中保存信息,并将其组织到一些数组或散列表中,并通过某种播放方法进行播放,可能使用处理程序和postDelay来播放声音和所需的时间,然后插入必要的数据以播放数组或散列表中的声音。
通过这种方式,您可以拥有自己的数据文件来播放声音序列。
https://stackoverflow.com/questions/14058185
复制相似问题