Были попытки найти способ для потоковой передачи звука из файла или веб-страницы на конкретное устройство вывода, а не только на устройство по умолчанию. Пробовал использовать mciSendString
, и хотя команда открытия принимает идентификатор устройства / имя файла, я не нашел способа использовать его, даже не уверен, что это то, что я ищу или нет, но учитывая, что он говорит ... or the filename of the device driver
, я думаю, да (?), но поправьте меня, если я ошибаюсь, и это не параметр типа specify your output device
.
Если это правильно, то как это сделать? вы перечисляете установленные драйверы устройств, заглядываете в интерфейс IMMDevice
, потому что он выглядит так, как будто в нем могут храниться имена файлов в реестре, но ни один из разделов реестра устройства вывода не имеет записи значения типа driver filename
или, по крайней мере,Я не нашел ни одного.
Так что мой вопрос: как бы вы пошли в потоковом режиме аудио на конкретное устройство вывода, это не должно быть сделано через mciSendString
, это просто то, что я посмотрелпоскольку это одна из самых обсуждаемых функций, когда речь идет о воспроизведении аудио.
Примечание: пожалуйста, сделайте , а не порекомендуйте мне сторонние библиотеки, такие как NAudio, вот почему я спрашиваю этоВопрос не в том, чтобы получить рекомендации для библиотек, в противном случае я бы уже использовал один и никогда бы не написал этого, просто видел, как многие ответы выглядят так: Use {LibName}, it has what you want
или что-то в этом роде.
В случае, еслинаписано нечетно или неправильно сформулировано местами, в основном вот какова должна быть конечная цель:
Installed Output Devices:
- Output1
- Output2
- Output3
Method For Playing:
//will play x.mp3 through output device 1
PlayAudio(output: "Output1", mp3File: "x.mp3");
//will play x.mp3 through output device 2
PlayAudio(output: "Output2", mp3File: "x.mp3");
//will play x.mp3 through output device 3
PlayAudio(output: "Output3", mp3File: "x.mp3");