gpt4 book ai didi

c# - 在 WMPLib DLL 中播放声音错误

转载 作者:行者123 更新时间:2023-12-02 00:35:02 24 4
gpt4 key购买 nike

我目前使用这个DLL C:\Windows\System32\wmp.dll,我的代码是这样的

WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayerClass();
wmp.URL = "SoundFile.wav";
wmp.controls.play();

enter image description here

并且得到了这个错误,我的代码有什么问题吗?我只是复制粘贴我在代码项目中搜索时看到的代码

最佳答案

如错误消息所述,嵌入互操作类型功能不支持嵌入类,仅支持接口(interface)。修复起来非常简单,只需从标识符名称中删除“Class”即可。所以你使用“适用的接口(interface)代替”。修复:

  var wmp = new WMPLib.WindowsMediaPlayer();
wmp.URL = "SoundFile.wav";
wmp.controls.play();

是的,这实际上是合法的,您可以创建接口(interface)的实例。 COM 是不同的:) 这个看似怪异的魔法是由 [CoClass] attribute 实现的。在 WindowMediaPlayer 界面上。它告诉 C# 编译器需要创建什么 COM 类来提供该接口(interface)。

COM 是一种非常纯粹的基于接口(interface)的编程范例。类的实现永远不会公开,它只需要一个简单的工厂来创建实例。 CoCreateInstance() 在幕后。与它的对话只能通过接口(interface)来完成。就像您案例中的 WindowMediaPlayer 界面一样。

关于c# - 在 WMPLib DLL 中播放声音错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25241032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com