2016-11-18 54 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的定義」? –