Ответ 1
Ваш звук будет передаваться по сети и что будет кэшировать его, пока что-то не захочет читать? Или данные будут отброшены? В общем, что-то вроде ниже (только тестировалось) должно работать как виртуальный микрофон, но я думаю, что он всегда будет читать файл с начала, когда устройство откроется, и вам нужно проверить, как он обрабатывает конец файла. Возможно, вы попытаетесь использовать его с помощью труб, но затем кэширование/отбрасывание входящих данных должно выполняться при чтении приложения из сети.
pcm.virtmic {
type file
format "raw"
slave.pcm "default"
file '/dev/null'
infile '/dev/urandom'
}
Подробнее см. alsa docs.
Опять же, не уверен, что этот инструмент вам действительно нужен. Было бы очень удобно, если бы вы могли начать команду с опцией "infile", как вы можете с "файлом", но, к сожалению, вы не можете...
Надеюсь, что это поможет.
UPDATE: slave.pcm не должно быть "null", а некоторое реальное устройство. Кажется, что используется для синхронизации, или я не знаю, но использование null приводит к тому, что процесс рекордера блокируется навсегда. Это устройство может заставить вас с определенной частотой дискретизации, но будьте осторожны. Использование "по умолчанию" является нормальным значением по умолчанию. infile необходимо предоставить необработанные звуковые данные с правильным/совпадающим форматом и скоростью. Кстати, вы можете посмотреть сервер alsa и jackd и другие звуковые системы и библиотеки для альтернативных решений для своей задачи.