WMP声音无法在其他计算机上运行

时间:2012-09-27 10:58:20

标签: c# winforms audio windows-media-player wmplib

我的项目是构建一个简单的游戏,现在我只用5个按钮创建主菜单Form1。按钮上有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.UnmanagedMemoryStream转换为String

1 个答案:

答案 0 :(得分: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