c - 如何使用 SoX C 库混合音频文件

标签 c audio sox mixing

使用 SoX 从命令行使用“sox -m ...”混合音频文件很简单,但我试图用 C 库找到完全相同的东西,但我不知道如何去做任何地方。有可能吗?

最佳答案

嗯,这是可能的,但图书馆不会帮助你。

查看sox.c 代码,您可以注意到实际的混合代码在static 函数中:

for (ws = 0; ws < olen; ++ws) { /* wide samples */
  if (combine_method == sox_mix || combine_method == sox_mix_power) {
    for (s = 0; s < effp->in_signal.channels; ++s, ++p) { /* sum samples */
      *p = 0;
      for (i = 0; i < input_count; ++i)
        if (ws < z->ilen[i] && s < files[i]->ft->signal.channels) {
          /* Cast to double prevents integer overflow */
          double sample = *p + (double)z->ibuf[i][ws * files[i]->ft->signal.channels + s];
          *p = SOX_ROUND_CLIP_COUNT(sample, mixing_clips);
        }
    }
/* [...] */

所以,如果你真的想使用 sox,你可以将它用于文件输入/输出,但你需要自己进行混合。

关于c - 如何使用 SoX C 库混合音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12107646/

相关文章:

为 vim 创建一个前端

c - 如何在下一行之前打印n个字符?

c++ - 在C/C++中使用Sox录制

audio - Sox:连接多个音频文件,中间没有间隙

c - 指针和函数

C++ 逐帧视频处理

java - 通过耳机路由 MIC 输入,通过手机扬声器路由音频输出

audio - sox-如何以16kbps的比特率创建mp3文件

python - Python Telegram Bot 中的音频段库

ios - 更新播放器远程控制事件的目标操作方法(MPRemoteCommand)