Как заставить аваудиоплеер остановиться в другом классе - PullRequest
0 голосов
/ 12 июля 2011

У моего делегата приложения этот код в приложении завершил запуск метода:

NSString *music = [[NSBundle mainBundle]
                   pathForResource:@"appsong" ofType:@"m4a"];
self.audio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:music] error:NULL];
audio.delegate = self;
[audio play];
audio.numberOfLoops = -1;

У меня есть страница, на которой должен играть другой кусочек музыки, как я могу сказать, что avaudioplayer в приложенииделегат должен остановиться и начать снова, когда я выйду из этого представления.

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Что ж, поскольку ваш глобальный игрок находится в делегате вашего приложения, представление, которое хочет воспроизводить свою собственную музыку, может добавить:

-(void)viewWillAppear:(BOOL)animated {
     // ...
     [(YourSpecificAppDelClass*)[UIApplication sharedApplication].delegate pauseAudioPlayer];
}

и

-(void)viewWillDisappear:(BOOL)animated {
     // ...
     [(YourSpecificAppDelClass*)[UIApplication sharedApplication].delegate startAudioPlayer];
}

где startAudioPlayer и stopAudioPlayer отображаются в заголовочном файле делегатов приложения.

0 голосов
/ 12 июля 2011

Вызовите функцию, которая останавливает игрока, который в классе appdelegate, из класса представления ur?

...