Обработка прерываний звука AVAudioPlayer - PullRequest
2 голосов
/ 20 августа 2011

Я играю «звуковые эффекты» в своем приложении, когда нажимаются кнопки, и у меня возникли некоторые трудности с тем, чтобы заставить делегатов работать должным образом в классе AVAudioPlayer, чтобы музыка воспроизводилась после звука.У меня есть импортированные фреймворки и установлены делегаты, но я не могу заставить работать общий экземпляр AVAudioSession ... Я знаю, что чего-то не хватает, но не могу найти четкого ответа где-либо, даже в документах apple.Вот код, который я использую, пытаясь добиться этого.

#import "AVFoundation/AVAudioPlayer.h
#import "MediaPlayer/MediaPlayer.h"

@interface HomeViewController : UIViewController <AVAudioPlayerDelegate, MPMediaPlayback   
> {

Когда нажата кнопка

-(IBAction)About
{ 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"button" ofType:@"caf"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
    theAudio.delegate = self;
    [theAudio play]; 

    AboutViewController *about = [[AboutViewController alloc] init];
    [self presentModalViewController:about animated:YES];

    NSString *path1 = [[NSBundle mainBundle] pathForResource:@"move" ofType:@"caf"];
    AVAudioPlayer* theAudio1 = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path1] error:NULL];
    theAudio.delegate = self;
    [theAudio1 play];     
}

Делегаты, пытающиеся воспроизвести мой звук как "окружающий шум" или простовозобновление воспроизведения после моего звукакак это, но я не могу заставить AVAudioSession работать!

-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player withFlags:(NSUInteger)flags
{
    if (flags == AVAudioSessionFlags_ResumePlay)
    {
        [player play];
    }
 }

Любая помощь или предложения будут с благодарностью.Мне просто нужно знать, как получить [AVAudio SharedInstance], поэтому, если кто-нибудь знает, какой класс мне нужно импортировать или какой фреймворк мне нужно добавить, чтобы это работало, это было бы очень кстати!

Спасибо

...