5

でオーディオファイルを再生していますAVPlayer。実装しAVAudioSessionInterruptionNotificationました。

    AVAudioSession *session = [AVAudioSession sharedInstance];
    NSError *errorInAudio   = nil;
    [session setActive:YES error:&errorInAudio];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(interruption:) name:AVAudioSessionInterruptionNotification object:nil];

    [session setCategory:AVAudioSessionCategoryPlayback error:nil];

アプリがフォアグラウンドにあるときに中断が発生した場合(音声制御など)は正常に機能します。
しかし、私はアプリをバックグラウンドモードにして、iPodプレーヤーを開いて再生を開始しました。そのとき、そして私のアプリがフォアグラウンドに入ったときでさえ、その中断は呼び出されていません。
何が問題なのか。助けてください。

4

2 に答える 2

4

使用するAVAudioPlayer場合は、準拠することができAVAudioPlayerDelegate、次のようなメソッドを実装できます- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag

ドキュメントにリストされているその他のメソッド。

于 2013-03-19T15:30:36.337 に答える
1

バックグラウンドで中断されたときに通知を受け取るにAVPlayerは、AudioSessionの通知を聞くことができます

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerStopped) name:AVAudioSessionInterruptionNotification object:nil];
于 2015-05-06T13:10:58.060 に答える