我正在尝试从 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/