AVAudioPlayer регулировка громкости на разных песнях - PullRequest
0 голосов
/ 25 ноября 2011

Я использую AVAudioplayer для воспроизведения трёх разных песен, нажимая кнопку, используя следующий код:

-(IBAction)play
{
//Play sound1   
NSString *pathToMusicFile1 = [[NSBundle mainBundle] pathForResource:@"Sample1" ofType:@"mp3"];
AVAudioPlayer* mySong1 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile1] error:NULL]; 
NSLog(@"Song1 Loaded");
mySong1.numberOfLoops = 0;
mySong1.volume = 1.0;
[mySong1 play];


    //Play sound2
NSString *pathToMusicFile2 = [[NSBundle mainBundle] pathForResource:@"Sample2" ofType:@"mp3"];
AVAudioPlayer* mySong2 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile2] error:NULL]; 
NSLog(@"song2 Loaded");
mySong2.numberOfLoops = 0;
mySong2.volume = 1.0;
[mySong2 play];


    //Play sound3
NSString *pathToMusicFile3 = [[NSBundle mainBundle] pathForResource:@"Sample3" ofType:@"mp3"];
AVAudioPlayer* mySong3 = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:pathToMusicFile3] error:NULL]; 
NSLog(@"song3 Loaded");
mySong3.numberOfLoops = 0;
mySong3.volume = 1.0;
[mySong3 play]; 

 }

Это отлично работает, но теперь я хотел бы использовать еще 3 кнопки для отключения звука1,sound2 и sound 3. Я попробовал это:

-(IBAction)sound1
{
mySong1.volume = 0.0;

}


-(IBAction)sound2
{

mySong2.volume = 0.0;


}


-(IBAction)sound3
{

mySong3.volume = 0.0;

}

Но я получаю ошибки "mySong1 undeclared"!Как я могу объявить и иметь возможность отключить один из звуков, нажав кнопку?

1 Ответ

0 голосов
/ 25 ноября 2011

Представлено «mySong1 undeclared», потому что вы пытаетесь получить доступ к локальным указателям из одной функции в другой функции.В основном удалите ваши указатели (AVAudioPlayer *) в .m и просто оставьте mySong3 (или 2 или 1) = // бла-бла.Затем в .h объявите mysong1;2;и 3;с указателями в комплекте.

...