4

我有几个音频文件:

  • f_1 - 长度 10 秒
  • f_2 - 长度 3 秒
  • f_3 - 长度 1 秒

我需要的是找到一种方法在 f_1 的特定部分(即等于 6 秒的位置)混合(合并) f2 和 f3

我正在查看音频示例,但它们对我没有多大帮助,所以任何可能有帮助的想法\参考\文档?

非常感谢!

4

2 回答 2

6

不幸的是,我认为设备上没有任何东西可以进行文件混音。在我看来,您有两个选择:

1)将这两个文件发送到服务器并使用 ffmpeg 或其他一些免费工具进行混音。

2) 如果它必须保留在手机本地,您可以使用 Android SoundPool ( http://developer.android.com/reference/android/media/SoundPool.html ) 加载音频并将它们设置为在同时。你可以在这里找到关于这个主题的一个很好的教程:http ://www.droidnova.com/creating-sound-effects-in-android-part-1,570.html

声音池要求您管理多个文件,而不是对单个文件进行混音和回放。如果 soundpool 允许您将输出作为 IOStream 获取,那就太酷了,但是,可惜的是,SDK 似乎不允许这样做。此外,如果 AudioRecorder 允许您从音乐层获取流,那就太好了……但这看起来也不可能。音频输入列表:http: //developer.android.com/reference/android/media/MediaRecorder.AudioSource.html

我知道这不是您正在寻找的,但希望您可以从某些链接中获得解决方法。

于 2010-02-12T18:16:30.560 回答
0

将其转换为波形并进行 FFT,将其混入所需范围 [“手动”] 并进行 iFFT 并将其转换回 mp3 怎么样。

注意:这涉及一些数学运算,在实际编码之前,您至少应该了解傅里叶变换的工作原理。

注意:我不知道是否有“库”允许愉快地访问 FFT、搜索和/或复用。

如果我有思想缺陷,请纠正我,但我认为这应该可行。

于 2010-02-13T00:50:51.797 回答