我正在使用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];
会收到此通知吗?
感谢
答案 0 :(得分:2)
如果没有会话
始终有音频会话。它是一个共享单例,就像应用程序,或通知中心或用户默认值一样。它的存在与它的激活无关。音频会话从应用程序启动到杀死的那一刻起存在。正如docs所说:
启动后,您的应用会自动获得单件音频会话
没有"关闭当前会话&#34 ;;这只是一个无意义的想法,你在自己的头脑中弥补。
您想要取消注册您不再需要的通知是正确的。去做。或者在他们到达时忽略它们。不要担心,要开心。