Мне нужно получить данные UDP на указанный IP-адрес и порт и преобразовать их в файл WAV, используя C # и VS 2017. Я немного поработал с Google и прочитал, что NAudio может помочь в этом. Поэтому я скачал NAudioDemo на https://github.com/naudio/NAudio, и открыл проект NAudioDemo в VS 2017. Убедившись, что пакет NAudio NuGet был восстановлен, я запустил проект, выбрал для загрузки демо Network Chat и нажал кнопку «Загрузить».
Это загруженное демо Network Chat.
Я ввел правильный IP-адрес и номер порта в текстовые поля и убедился, что значения Compression и Protocol были установлены правильно.
Вы заметите, что на снимке экрана раскрывающийся список «Устройство ввода» не был установлен. Это потому, что я запускаю демонстрационную версию на Windows Server 2012 R2 , а на сервере не настроены устройства ввода, и в раскрывающемся списке ничего нет.
Когда я нажимаю кнопку Start Streaming, она вызывает метод NetworkChatPanel.Connect
, и это создает новый объект NetworkAudioPlayer
. Внутри конструктора класса NetworkAudioPlayer
он запускает следующий код:
public NetworkAudioPlayer(INetworkChatCodec codec, IAudioReceiver receiver)
{
this.codec = codec;
this.receiver = receiver;
receiver.OnReceived(OnDataReceived);
waveOut = new WaveOut();
waveProvider = new BufferedWaveProvider(codec.RecordFormat);
waveOut.Init(waveProvider);
waveOut.Play();
}
Создает новый экземпляр объекта WaveOut
и вызывает метод waveOut.Init
. Это вызывает следующее исключение:
Необработанное исключение типа «NAudio.MmException» произошло в
NAudio.dll BadDeviceId, вызывающий waveOutOpen, произошла
Мне интересно, возникло ли исключение, потому что на сервере, на котором я работаю, нет устройств ввода. Или это может быть что-то еще.
Не могли бы вы помочь мне запустить и работать на Windows Server 2012 R2 без устройств ввода, чтобы я мог сохранить данные UDP в виде файла WAV?
Спасибо.