2015-09-21 2 views
0

Я пытался записать в один файл с более чем двумя каналами с NAudio, и я продолжаю получать InvalidParameter, вызывающий waveInOpen. Я полагал, что это связано с тем, что я пытаюсь записать более двух каналов.Как записать в волновой файл с использованием NAudio с более чем 2-мя каналами?

Ошибка возникает, когда WaveIn.StartRecording() вызывается, когда количество каналов больше 2. Оно работает, когда каналы моно и стерео.

Есть ли способ вызвать функцию waveInOpen с параметрами, находящимися за пределами диапазона? Есть ли способ редактировать функцию waveInOpen для приема более двух каналов?

Спасибо за помощь!

+0

Что вы пытаетесь записать из этого, имеет более двух каналов? Можете ли вы записать моно или стерео, а затем увеличить до максимального количества каналов? – Corey

+0

Я собираюсь записывать с несколькими различными устройствами в один файл wav. быть разделенным позже. –

ответ

0

Довольно часто драйверы звуковой карты для вашей звуковой карты не позволяют записывать более двух каналов. Вы могли бы увидеть, может ли это сделать WasapiCapture. Часто единственный способ получить доступ ко всем каналам - если ваша звуковая карта имеет драйвер ASIO, а затем вы можете использовать AsioOut

+0

Я использовал WasapiCapture для обработки многоканальной записи, но я все еще получаю сообщение об ошибке. Теперь это неподдерживаемый формат волны. Я использую аудиоинтерфейс usb, так что это не проблема. Его, как и NAudio, не допускают никакого волнового формата, который превышает 2 канала. даже когда я загружаю combobox с доступными устройствами ввода, он разбивает мой аудиоинтерфейс на два сегмента канала, например Analog (1 + 2), Analog (3 +4). Есть ли способ исправить это? –

+0

NAudio просто передает ваши запросы на API Windows. В конечном итоге именно ваш драйвер звуковой карты решает представить себя в Windows. Возможно, вы сможете убедить WASAPI открыть многоканальный вывод, создав формат WaveFormatExtensible с правильными параметрами. –

+0

Итак, я пробовал WASAPI с WaveFormatExtensible, и как только я вызываю startRecording(), он разбил приложение с помощью этого кода «вышло с кодом -1073740791». и если я просто попробовать с нормальным WaveFormat и WasapiCapture я получаю эту ошибку: Неподдерживаемого Wave Format на NAudio.CoreAudioApi.WasapiCapture.InitializeCaptureDevice(): линия 74 в NAudio.CoreAudioApi.WasapiCapture.StartRecording(): линия 95 на данный момент, из идей о том, как сделать запись NAudio всего тремя различными моноканалами –

Смежные вопросы