我正在开发适用于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;
}
Run Code Online (Sandbox Code Playgroud)
这个功能在C中,因为我正在使用core-audio来生成频率,但是在视图控制器中使用swift所以需要一种方法来实现一个监听器来检测耳机插件事件并返回给用户以前的观点,我不知道我是否可以使用我的函数isHeadsetPluggedin()与事件监听器或我应该创建一个新的.在我的MenuViewController中,我控制是否使用以下功能插入耳机:
func isHeadsetPluggedIn() -> Bool {
return freqController.isHeadsetPluggedIn();
}
Run Code Online (Sandbox Code Playgroud)