gpt4 book ai didi

c# - 自定义视频和音频设置

转载 作者:行者123 更新时间:2023-12-02 23:14:28 26 4
gpt4 key购买 nike

我想制作一个像 Skype 中一样的音频/视频设置窗口,
允许用户选择通话中使用的设备并对其进行测试,
现在我有两个问题:|

  • 如何获取可用的音频/视频设备。
  • 我想测试这些设备如下:
  • 麦克风:根据输入的声音显示一个条形(与 Skype 音频设置相同)。
  • 摄像头:查看所选摄像头的预览(与 Skype 设置相同)。
  • 扬声器:播放音频文件的按钮。

  • 我使用 Microsoft Expression Encoder 找到了#1 的一些解决方案,如下所示:
            var vidDevices = EncoderDevices.FindDevices(EncoderDeviceType.Video);
    var audDevices = EncoderDevices.FindDevices(EncoderDeviceType.Audio);

    这需要添加微软表达式编码器,这将增加我们程序的大小,我认为应该有一种本地方式来与音频/视频设备进行通信,而不需要外部库。

    最佳答案

    第 1 部分。这对 .NET 来说意义重大。您需要与 Direct Show 和 COM 集成来执行此操作,或者可能使用一些 WMI 查询。然而,这是一个巨大的痛苦。 @Sheridan 提供的文档是一个很好的起点。另一条建议是,还有其他框架,例如 libvlc 和 gstreamer,可以为您做这种事情。您可以尝试查看 dshowvideosrcdshowaudiosrc gstreamer 的代码并查看您需要的确切直接显示代码。

    第 2 部分。您可能必须自己实现它。您可能会在显示部分很幸运,因为可能有一个 directx 过滤器,您可以将其插入到您的媒体图表中,它将为您处理繁重的工作。摄像头的查看效果还不错,您只需要一个窗口句柄即可传递给媒体图。建立媒体图后,播放音频同样容易。

    我知道这似乎不是一个很好的答案,但这不是我们可以通过这种媒介为您提供完整解决方案的东西。你有两个选择,学习 DirectX、DShow 和 COM。或者,找到一个很好的框架来抽象所有这些,例如 gstreamer 或 libvlc。

    关于c# - 自定义视频和音频设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22603691/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com