Воспроизведение потоковых аудиоданных (C#)

Я пытаюсь разработать приложение для Windows с использованием С#, которое может воспроизводить потоковые аудиоданные. По сути, у меня будет клиентское приложение, отвечающее за воспроизведение разных аудиофайлов. В настоящее время из клиентского приложения я извлекаю параметр конфигурации оборудования из заголовка файла, а затем передаю данные файла (поток PCM) по сети.

Таким образом, возможно ли использовать параметры конфигурации оборудования, отправленные от клиента, для настройки фактического оборудования (на стороне сервера), а затем передать ему поток данных файла, чтобы он мог воспроизводить аудиоданные.

Во время поиска я узнал о NAudio. Способен ли NAudio делать это, или лучшим вариантом для меня было бы переключиться на нативный код C/C++ с использованием Directsound APIS.

обновление: под настройкой оборудования я подразумеваю настройку параметра, связанного с воспроизведением звука. Эти параметры будут включать sample rate (например: 44100 Гц), number of channels (например: стерео), storage format (например: 16-битный обратный порядок байтов) и т. д.

Мое клиентское приложение работает в Linux, и я установил драйвер ALSA, который перехватывает поток PCM и конфигурацию hw_params, а затем отправляет их на сервер.

обновление завершается

Спасибо.


person John Smith    schedule 18.07.2011    source источник
comment
Что вы на самом деле пытаетесь настроить, когда говорите о реальном оборудовании?   -  person Russ Clarke    schedule 18.07.2011
comment
@ Расс, пожалуйста, проверьте update на свой вопрос. Спасибо.   -  person John Smith    schedule 18.07.2011


Ответы (1)


Если вы посмотрите на последний код NAudio, вы увидите два примера в NAudioDemo. пример приложения, воспроизводящего потоковое аудио. Одно из них представляет собой элементарное приложение для чата, которое отправляет сжатый голос через UDP, а другое воспроизводит потоковое интернет-радио в формате MP3. Я бы посоветовал вам взглянуть на это и попробовать образец приложения, чтобы увидеть, соответствует ли оно вашим потребностям.

person Mark Heath    schedule 18.07.2011
comment
Спасибо, Марк. Я проверю это и обновлю здесь, если это поможет мне. - person John Smith; 18.07.2011
comment
@Mark Heath Я знаю, что опоздал на несколько лет, но есть ли шанс, что вы можете привести здесь минимальный пример? Ссылка по-прежнему ведет меня к вашему исходному коду, но похоже, что нужно проработать тонну кода, прежде чем я смогу использовать его для реализации чего-либо. По крайней мере, базовая демонстрация была бы полезна. - person Ortund; 02.08.2018