C# 如何将音频流传输到特定的输出设备?
一直在努力寻找将音频从文件或网络传输到特定输出设备(而不仅仅是默认设备)的方法。尝试使用C# 如何将音频流传输到特定的输出设备?,c#,windows,winapi,audio,audio-streaming,C#,Windows,Winapi,Audio,Audio Streaming,一直在努力寻找将音频从文件或网络传输到特定输出设备(而不仅仅是默认设备)的方法。尝试使用mciSendString,虽然它确实接受设备id/文件名,但我还没有找到使用它的方法,我甚至不确定这是否是我正在寻找的,但考虑到它说的是。。。或者设备驱动程序的文件名我猜是(?),但是如果我错了,请纠正我,并且这不是指定输出设备的类型参数 如果它是正确的,那么您如何枚举已安装的设备驱动程序,查看了IMMDevice接口,因为它的接缝好像可以将文件名存储在注册表中,但没有一个输出设备注册表项具有驱动程序文件名
mciSendString
,虽然它确实接受设备id/文件名,但我还没有找到使用它的方法,我甚至不确定这是否是我正在寻找的,但考虑到它说的是。。。或者设备驱动程序的文件名
我猜是(?),但是如果我错了,请纠正我,并且这不是指定输出设备的类型参数
如果它是正确的,那么您如何枚举已安装的设备驱动程序,查看了IMMDevice
接口,因为它的接缝好像可以将文件名存储在注册表中,但没有一个输出设备注册表项具有驱动程序文件名
类型值条目,或者至少我没有找到
所以我的问题是,你如何将音频流传输到特定的输出设备,它不必通过mciSendString
来完成,这只是我研究的内容,因为它是播放音频时最受关注的功能之一
注意:请不要向我推荐像NAudio这样的第三方库,我问这个问题的原因是没有得到对库的推荐,否则我就已经使用了一个,也不会写这个,刚才看到很多答案是这样的:使用{LibName},它有你想要的
或类似的东西
如果书写的内容有些奇怪或不正确,基本上这就是最终目标:
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");
您似乎正在寻找以下API: 设置多媒体设备使用的WaveAudio设备(声卡) 控件,则必须使用mciSendCommand API。多媒体控制 不直接提供用于设置的设备的方法 播放或录音
- 使用
和MCI\u SET
MCI\u WAVE\u SET\u参数调用
将wOutput设置为所需播放设备的IDmciSendCommand()
- 然后通过获取
)的mciSendCommand(
IDDevice
mciGetDeviceID(“waveaudio”)
wOutput
想要什么,它可能与waveOutGetDevCaps()返回的ID相同
我只是个搬运工。
请参阅: