1.首先你得先检测是否是蓝牙耳机接入
- (NSInteger)HeadSetPluggingType {
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
AVAudioSessionRouteDescription *currentRoute = [audioSession currentRoute];
for (AVAudioSessionPortDescription *output in currentRoute.outputs) {
if ([[output portType] isEqualToString:AVAudioSessionPortHeadphones]) {
return 1;
}else if ([[output portType] isEqualToString:AVAudioSessionPortBluetoothA2DP]) {
return 2;
}
}
return 0;
}
我这边返回的1是有线耳机,2是蓝牙设备,3没有接入设备
2.耳机状态获取的通知
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(audioRouteChangeListenerCallback:)
name:AVAudioSessionRouteChangeNotification
object:[AVAudioSession sharedInstance]];
//监听耳机插入拔出状态的改变
- (void)audioRouteChangeListenerCallback:(NSNotification *)notification {
NSDictionary *interuptionDict = notification.userInfo;
NSInteger routeChangeReason = [[interuptionDict
valueForKey:AVAudioSessionRouteChangeReasonKey] integerValue];
switch (routeChangeReason) {
case AVAudioSessionRouteChangeReasonNewDeviceAvailable:{//插入耳机
NSLog(@"eeejjejejejjejjjejej-插入耳机");
}
break;
case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:{//拔出耳机
NSLog(@"eeejjejejejjejjjejej-拔出耳机");
}
break;
case AVAudioSessionRouteChangeReasonCategoryChange:
break;
}
}
3.AVAudioSession 设置
一.录制视频 需要佩戴蓝牙耳机的
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord mode:AVAudioSessionModeVideoRecording options:AVAudioSessionCategoryOptionAllowBluetooth error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];
二.播放视频且需要蓝牙耳机录音的
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil];
[[AVAudioSession sharedInstance] setActive:YES error:nil];