2012-09-27 48 views
0

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

我的问题是,当我将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

+0

你所有的音乐文件存储在哪里?他们是否在调试/发布文件夹中? – DanM7

+0

请向我们展示加载音乐文件的代码。 –

+2

@ user1703020,在StackOverflow上,问题下方的空间仅供解答,因此如果您有其他信息需要添加,则应该编辑问题以添加它。我已经标记了下面的答案以供删除,但我相信您应该可以删除它并将其自动添加到帖子中。 – dsolimano

回答

1

此致敬礼我不建议您使用WMP,所以看看SoundPlayer类。 但是我认为问题在于你没有给你的文件提供正确的位置。所以你可以做的是在应用程序文件夹中找到你的文件,找到它的位置并创建音乐文件的位置。

所以尝试:

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

或者,如果你有一个在应用程序路径中使用声音文件夹:

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 
+1

'+ 1'为广泛的答案,不错的工作! – Anne

相关问题