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

时间:2013-12-11 10:38:19

标签: c# audio com com-interop

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

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

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

有什么想法吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

没有类型库来保存有关MMDevice API接口的信息。本机代码应用程序使用定义这些接口的Windows SDK标头,C#应用程序必须拥有自己的私有代码定义,例如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);