2016-11-18 64 views
0

我想为我的新项目在发射器内播放一些背景音乐。但是我得到一个错误。从资源C播放音乐#

private void playlooping() 
{ 
    SoundPlayer.PlayLooping(system.Resources.Bgm); 
} 

//Bgm is the name of the song. 

出于某种原因,我得到

没有重载方法 'PlayLooping' 需要1个参数

+1

它基本上意味着你不能只用一个或任何参数调用'PlayLooping'。查看文档[这里](https://msdn.microsoft.com/en-us/library/tbx06asw(v = vs.110).aspx),你可以看到'PlayLooping'没有任何参数。也许[这](http://stackoverflow.com/questions/4125698/how-to-play-wav-audio-file-from-resources)答案可以帮助你。 –

+0

那么我如何将我的音乐文件分配给播放器。我如何告诉它播放我想要的文件 –

+0

是您的资源的音频文件或音频文件本身的路径? –

回答

1

正如我在评论,PlayLooping does not take any arguments提到的错误。所以你需要指定你想在其他地方播放的声音。

// via string path 
var soundPlayer = new SoundPlayer(@"C:\somePath\someFile.wav"); 

// via stream 
var soundPlayer = new SoundPlayer(musicStream); 

所以,如果你的资源是你要善于去同一个字符串:

var soundPlayer = new SoundPlayer(system.Resources.Bgm); 

选择是设置字符串这可通过经SoundPlayer -Constructor这样的设置来实现实例化后-path或流您通过SiteSoundPlayer - 你SoundPlayer对象或Stream -Properties:

var soundPlayer = new SoundPlayer(); 

// via path 
soundPlayer.Site = @"C:\path\test.wav"; 

// via stream 
soundPlayer.Stream = someStream; 

将此设置为正确后,您应该打电话给PlayLooping。因此,最终的代码应该看起来像这样(在测试窗口对我的作品形成了应用程序,只要简单地把我的debug文件夹中的音效档):

var soundPlayer = new SoundPlayer("test.wav"); 
soundPlayer.PlayLooping(); 

您在这里可以找到的SoundPlayer完整的文档:https://msdn.microsoft.com/en-us/library/system.media.soundplayer(v=vs.110).aspx

+0

好的,我替换SoundPlayer.PlayLooping(system.Resources.Bgm);与var soundPlayer = new SoundPlayer(system.Resources.Bgm);线。好事是错误消失了。坏事是。我仍然没有听到音乐,当我启动应用 –

+0

以及你仍然应该调用'soundPlayer.PlayLooping()':) –

+0

“soundplayer不包含PLaylooping的定义”? –