In meiner App, die auf iOS 6 ausgeführt wird, scheint alles mit Audio gut zu funktionieren. Ich benutze das alte C API -Format, um Unterbrechungen mit einem Rückruf zu fangen. Einrichten über: AudioSessionInitialize(NULL, NULL, interruptionListenerCallback, (__bridge void *)self)
Und es war großartig. Mit iOS 7 SDK scheint mein Unterbrechungsaufruf nie aufgerufen zu werden, wenn das Gerät Anrufe empfängt oder ein Alarm ausfällt.
Nachdem ich mich umgesehen hatte, hörte ich, dass die alte C -API veraltet war und dass Sie zu den neueren Avaudiosession -Funktionen wechseln sollten. Weitere Lesungen ergab, dass der Avaudiosession -Delegierter veraltet ist und dass Sie die verwenden sollten NSNotification
zum AVAudioSessionInterruptionNotification
Unterbrechungen zu fangen und alles zu tun, was getan werden muss.
Für mich scheint es, dass diese Benachrichtigung nie wirklich abgefeuert wird und ich daher nie richtig unterbrochen werde, was dann nach dem Ende des Anrufs alle meine Audio -Sachen bricht.
Ich melde mich für die Benachrichtigung wie so an:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(AudioInterruption:) name:AVAudioSessionInterruptionNotification object:nil];
Im Moment die AudioInterruption:
Funktion protokolliert einfach, dass es abgefeuert wurde. Weder das Protokoll noch die Haltepunkte auslösen.
Um klar zu sein, funktioniert die Audio -Wiedergabe und -aufnahme zunächst einwandfrei. Wenn eine Unterbrechung auftritt (z. B. ein eingehender Anruf oder ein Alarm), wird keine Unterbrechungsbenachrichtigung abgefeuert. Wenn mehr umgebende Code erforderlich ist, lassen Sie es mich wissen.