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

linux – 模拟麦克风(虚拟麦克风),第1张

概述我有一个问题,我需要“模拟麦克风输出. 数据将通过网络传输,解码成PCM,基本上需要写入麦克风 – 其他程序可以读取/记录任何内容. 我一直在阅读alsa,但信息相当稀疏.文件插件看起来很有希望 – 我在想一个命名管道作为“infile”,然后我可以从我的应用程序传递数据.我无法让它工作,但是(vlc / audacity只是segfault). pcm.testing { type fil 我有一个问题,我需要“模拟”麦克风输出.

数据将通过网络传输,解码成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 – 模拟麦克风(虚拟麦克风)全部内容,希望文章能够帮你解决linux – 模拟麦克风(虚拟麦克风)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1048802.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存