0

我的项目是构建一个简单的游戏,现在我只制作了Form1带有 5 个按钮的主菜单。按钮上有一个MouseClickMouseEnter,我有一个使用 WMP 方法(使用 WMPLib 和 axWMPLib)的背景音乐曲目。

我的问题是当我bin/debug把它放在一个rar文件上并把它交给我的朋友时,他们说他们听不到声音。我通过 WMP 版本 11 制作了该项目,所以我问他们的 WMP 版本是否为 11,他们说是的。我不知道为什么我在我的电脑上听到声音而他们却没有。

我试图给他们文件夹:

  • bin\Release
  • bin\Debug
  • x86\Release
  • x86\Debug

但他们仍然说他们听不到他们所有人的任何声音。

编辑

我所有的声音都在一个名为“声音”的文件夹中。我找到了一些细节,发现您需要将这些 WMP 声音嵌入到“资源”中。

那么我该怎么做,以及Form1加载时如何调用它们。不,以下代码不起作用:

BackGround.URL = Properties.Resources.Invincible;

它说我无法转换System.IO.UnmanagedMemoryStreamString.

4

1 回答 1

1

真诚地我不推荐你使用WMP,所以看看SoundPlayer类。但是我认为问题在于您没有为文件提供正确的位置。所以你可以做的是在你的应用程序文件夹中找到你的文件,获取它的位置并创建音乐文件的位置。

所以试试:

string musicName = Application.StartupPath + "music.mp3";

或者,如果您在应用程序路径中有Sounds文件夹,请使用:

string musicName = Application.StartupPath + "\\Sounds\\music.mp3";

否则,如果您在应用程序资源中插入音乐文件:

BackGround.URL = Properties.Resources.Invincible;

不起作用,因为BackGround.URL它是字符串类型,而Properties.Resources.Invincible音乐文件流是。

我不知道是否使用WMP可以设置流从它可以播放文件的位置。尽管SoundPlayer我之前链接的类包含一个可以设置输入流的属性。你可以这样做:

SoundPlayer mySoundPlayer = new SoundPlayer();
mySoundPlayer.Stream = Properties.Resources.Invincible;
mySoundPlayer.Load();
mySounPlayer.Play(); //plays the Properties.Resources.Invincible sound
于 2012-09-28T20:30:57.080 回答