AVAudioSessionRouteChangeNotification不断被调用

时间:2016-08-28 12:26:27

标签: ios notifications avaudiosession

我正在使用AVAudioSession获取有关路线更改的信息 -

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(currentRouteChanged:)
                                                 name:AVAudioSessionRouteChangeNotification object:nil];

问题在于关闭当前会话后 -

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    // close down our current session
    [audioSession setActive:NO error:nil];

通知仍然被调用。

目前我正在使用 -

[[NSNotificationCenter defaultCenter] removeObserver:self];

停止通话,但没有正确填写。如果没有会话怎么会收到这个通知?

是否有一种“更强大”的方式来取消音频会话而不是 -

[audioSession setActive:NO error:nil];

会收到此通知吗?

感谢

1 个答案:

答案 0 :(得分:2)

  

如果没有会话

始终有音频会话。它是一个共享单例,就像应用程序,或通知中心或用户默认值一样。它的存在与它的激活无关。音频会话从应用程序启动到杀死的那一刻起存在。正如docs所说:

  

启动后,您的应用会自动获得单件音频会话

没有"关闭当前会话&#34 ;;这只是一个无意义的想法,你在自己的头脑中弥补。

您想要取消注册您不再需要的通知是正确的。去做。或者在他们到达时忽略它们。不要担心,要开心。