c# - 是否有适用于 Windows Core Audio 的 COM 类型库

标签 c# audio com com-interop

我正在尝试从 C# 调用 Windows Core Audio。我知道我可以使用 NAudio 和 NetCoreAudio。

但是我想为 Windows Core Audio 库 AudioSes.dll 和 MMDeviceApi.dll 获取或生成一个类型库并将其导入我的项目

我试过 Tlbexp、TlbImp 和 RegAsm。 dll 似乎不包含类型信息。如果它不在这些 dll 中,我在哪里可以找到它。

有任何想法吗?

任何帮助将不胜感激。

最佳答案

没有类型库来保存有关 MMDevice API 接口(interface)的信息。 native 代码应用程序使用定义这些接口(interface)的 Windows SDK header ,而 C# 应用程序必须有自己的私有(private)代码定义,例如 NAudio 源代码中的那些,IAudioClient.cs :

namespace NAudio.CoreAudioApi.Interfaces
{
    /// <summary>
    /// n.b. WORK IN PROGRESS - this code will probably do nothing but crash at the moment
    /// Defined in AudioClient.h
    /// </summary>
    [Guid("1CB9AD4C-DBFA-4c32-B178-C2F568A703B2"), 
        InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    internal interface IAudioClient
    {
        [PreserveSig]
        int Initialize(AudioClientShareMode shareMode,
            AudioClientStreamFlags StreamFlags,
            long hnsBufferDuration, // REFERENCE_TIME
            long hnsPeriodicity, // REFERENCE_TIME
            [In] WaveFormat pFormat,
            [In] ref Guid AudioSessionGuid);

关于c# - 是否有适用于 Windows Core Audio 的 COM 类型库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20516835/

相关文章:

c# - 如何向 ILIST 添加指定数量的列表元素?

c# - C#Windows Phone-结合音频和视频文件

java - Android声音播放嘈杂且发出嘶哑声

用于免注册激活的 COM 组件

c# - 使用 Unity3D 时,C# 集合是否适用于所有设备?

c# - XElement namespace (如何?)

android - Android:声音播放错误。压缩问题?

html - HTML5音频搜寻无法正常工作。引发响应内容长度不匹配异常

c++ - 导入的 "RegExp.tlb"的 C++ COM 接口(interface)是否在进程之间隐式共享内存?

com - 通过 COM/SxS 在 Unity3d 中使用 .NET 4.0 DLL?