winrt MIDI 文档示例代码建议,给定一个 DeviceInformation 对象,可以通过引用 DeviceInformation 的 Id 创建一个 MIDIPort,如下所示,对于名为 devInfo 的 DeviceInformation:
midiOutPort = 等待 MidiOutPort.FromIdAsync(devInfo.Id);
当然,在 cppwinrt 中,人们会使用它的 C++ 版本,但症结在于访问 devInfo 的 Id(无论是通过 devInfo.Id() 还是 devInfo.Id 或其他)。错误是“DeviceInformation 没有名为 Id 的成员”。这肯定存在于 cppwinrt 中,但我还没有找到访问它的方法。
如果相关,我以这种方式声明了 DeviceInformation:
winrt::Windows::Foundation::Collections::IIterator<winrt::Windows::Devices::Enumeration::DeviceInformation> devInfo;
因为在枚举 DeviceInformationCollection 时未接受 winrt::Windows::Devices::Enumeration::DeviceInformation。