我正在尝试从C#调用Windows Core Audio。我知道我可以使用NAudio和NetCoreAudio。
但是,我想获取或生成Windows Core Audio库AudioSes.dll和MMDeviceApi.dll的类型库,并将其导入我的项目
我尝试过Tlbexp,TlbImp和RegAsm。 dll似乎不包含类型信息。如果它不在这些dlls我可以找到它。
有什么想法吗?
任何帮助将不胜感激。
答案 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);