2016-11-18 5 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' не принимает никаких аргументов. Может быть, [this] (http://stackoverflow.com/questions/4125698/how-to-play-wav-audio-file-from-resources) ответ вам поможет. –

+0

, то как мне назначить музыкальный файл playlooping. Как я могу сказать, что играть в файл, который я хочу, –

+0

- ваш ресурс - путь к аудиофайлу или самому аудиофайлу? –

ответ

1

Как я уже говорил в комментарии, PlayLooping does not take any arguments. Поэтому вам нужно указать звук, который вы хотите играть где-то еще. Это делается либо путем установки его через SoundPlayer -Constructor, как это:

// 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); 

альтернатива задать строку -path или поток после того, как ваш инстанцировании SoundPlayer через Site - или Stream -свойства вашего SoundPlayer объекта:

var soundPlayer = new SoundPlayer(); 

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

// via stream 
soundPlayer.Stream = someStream; 

После настройки этой корреляции вы должны хорошо позвонить PlayLooping. Так что ваш окончательный код должен смотреть, как это (работаю для меня в испытуемом приложении Windows Forms, с звуковым файлом просто положить в моей папке отладки):

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 = новый SoundPlayer (system.Resources.Bgm); линия. хорошо, что ошибка исчезла. Плохая вещь. я до сих пор не слышу музыку, когда я запускаю приложение –

+0

, но вы все равно должны называть 'soundPlayer.PlayLooping()':) –

+0

«soundplayer не содержит определения для PLaylooping» ?? –

Смежные вопросы