linux – 模拟麦克风(虚拟麦克风)

前端之家收集整理的这篇文章主要介绍了linux – 模拟麦克风(虚拟麦克风)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个问题,我需要“模拟”麦克风输出.

数据将通过网络传输,解码成PCM,基本上需要写入麦克风 – 其他程序可以读取/记录任何内容.

我一直在阅读alsa,但信息相当稀疏.文件插件看起来很有希望 – 我在想一个命名管道作为“infile”,然后我可以从我的应用程序传递数据.我无法让它工作,但是(vlc / audacity只是segfault).

pcm.testing {
  type file
  slave {
    pcm {
      type hw
      card 0
      device 0
    }
  }
  infile "/dev/urandom"
  format "raw"
}

有什么更好的方法吗?关于alsa插件的任何建议(特别是文件插件)?

解决方法

你的声音将会流经网络,什么会缓存它,直到有些东西想要阅读?还是将数据丢弃?
一般来说,如下所示(只是几乎不被测试)应该作为一个虚拟麦克风,但我认为它将始终从设备打开时开始读取文件,您需要检查它是如何处理文件结束的.也许你会尝试使用管道,但缓存/丢弃传入的数据需要由应用程序从网络读取处理.
pcm.virtmic {
    type file
    format "raw"
    slave.pcm "default"
    file '/dev/null'
    infile '/dev/urandom'
}

有关更多选项,请参阅alsa docs.

再次,不知道这个工具是你真正需要的任务.如果您可以使用“infile”选项启动命令,那么真的很漂亮,就像你可以使用’file’一样,但是不幸的是你不能…

希望有帮助.

更新:slave.pcm不能是“null”,而是一些真正的设备.这似乎是用于定时,或者我不知道,但使用null会导致录像机进程永久阻止.该设备可能会强制您以给定的采样率,但要小心.使用“默认”是一个理想的默认值. infile需要提供具有正确/匹配格式和速率的原始声音数据. btw你可以看看alsa服务器和jackd和其他音响系统和库为您的任务的替代解决方

猜你在找的Linux相关文章