我正在开发适用于 iOS 8.1 的 iphone 应用程序,该应用程序与核心音频一起生成频率并调整强度。在我生成频率的视图控制器中,如果耳机在某个时刻被拔出,我需要控制,我已经在控制耳机是否已连接,然后继续使用以下功能进入我的频率发生器视图:
- (BOOL)isHeadsetPluggedIn {
AVAudioSessionRouteDescription* route = [[AVAudioSession sharedInstance] currentRoute];
for (AVAudioSessionPortDescription* desc in [route outputs]) {
if ([[desc portType] isEqualToString:AVAudioSessionPortHeadphones])
return YES;
}
return NO;
}
这个函数在 C 中,因为我正在使用 core-audio 来生成频率,但是在视图控制器中我正在使用 swift,所以需要一种方法来实现侦听器来检测耳机拔出事件并返回给用户以前的观点,我不知道我是否可以将我的函数 isHeadsetPluggedin() 与事件侦听器一起使用,或者我应该创建一个新的。在我的 MenuViewController 中,我使用以下函数控制是否插入耳机:
func isHeadsetPluggedIn() -> Bool {
return freqController.isHeadsetPluggedIn();
}