首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WMPLib DLL错误中播放声音

在WMPLib DLL错误中播放声音
EN

Stack Overflow用户
提问于 2014-08-11 10:22:59
回答 2查看 699关注 0票数 2

我正在使用这个DLL C:\Windows\System32\wmp.dll,我的代码是

代码语言:javascript
复制
WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayerClass();
wmp.URL = "SoundFile.wav";
wmp.controls.play();

我的代码有什么问题吗?我只是复制粘贴我在代码项目中搜索时看到的代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-11 11:39:39

正如错误消息所指出的,embedding类型特性不支持嵌入类,只支持接口。很容易修复,只需从标识符名称中删除"Class“即可。因此,您可以使用“适用的接口”。修正:

代码语言:javascript
复制
  var wmp = new WMPLib.WindowsMediaPlayer();
  wmp.URL = "SoundFile.wav";
  wmp.controls.play();

是的,这实际上是合法的,您可以创建一个接口实例。COM是不同的:)这个看似古怪的魔术是由[CoClass]属性在WindowMediaPlayer接口上实现的。它告诉C#编译器需要创建哪些COM类来提供该接口。

COM是一个非常纯粹的基于接口的编程范例。类实现从未公开过,它只需要一个简单的工厂就可以创建实例。CoCreateInstance()在引擎盖下。只有通过接口才能与之交谈。就像你的例子中的WindowMediaPlayer接口。

票数 4
EN

Stack Overflow用户

发布于 2014-08-11 11:25:17

在visual中的工具箱中,右键单击一个工具并选择选择item.,现在转到COM组件选项卡并向下滚动,勾选windows和Ok。

知道你可以纠正你的密码..。

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
{
    AxWMPLib.AxWindowsMediaPlayer med = new AxWMPLib.AxWindowsMediaPlayer();
    // other part of your code
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25241032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档