使用FMOD保存输出而无需播放

时间:2011-09-29 12:49:26

标签: android audio fmod

我需要在N个频道中实现单独音频文件的播放,文件可以顺序播放或并行播放。我需要在Android上实现它。

时间轴:

| file a ... | file d .... | file b ... | ...... | file k | ....

| ..... | file g | file c .. | file p。| ....

我在考虑两个选项,一个是FMOD解压缩文件并同时播放它们。我已经研究过,FMOD看起来比使用AudioTrack手动播放要好得多。但是,我无法理解FMOD是否允许我们在不播放的情况下保存整个合并输出。

我知道使用解决方案here我们可以将输出重定向到wav文件,但是可以立即创建最终输出并使用FMOD保存吗?或者我将不得不手动将PCMS合并到一个流中。

感谢。

1 个答案:

答案 0 :(得分:1)

这里的一个重要问题是为什么你需要保存文件,如果可以离线执行,那么它会更简单。如果你必须记录几个文件的串联(包括其他文件并行),那么FMOD就很有可能。

一种方法是使用wave-writer-nrt输出模式,它允许您以比实时更快的速度输出基于FMOD playound调用的wav文件。

另一种方法是在播放时使用自定义DSP访问任何子混音的数据流,如果您希望其他声音同时播放,则非常有用。

另一个是简单地创建声音对象,然后使用Sound :: lock访问PCM数据,您可以将自己连接到目的地。请记住,所有声音都需要相同的采样率和通道,否则您需要进行处理。另外请记住,除非您想自己混合音频,否则不能对平行声音执行此操作。