// // AudioHelper.m // VoipTest // // Created by StevStark on 2020/11/11. // #import "HDLAudioHelper.h" @implementation HDLAudioHelper + (NSArray *)bluetoothRoutes { return @[AVAudioSessionPortBluetoothHFP, AVAudioSessionPortCarAudio, AVAudioSessionPortBluetoothA2DP, AVAudioSessionPortBluetoothLE ]; } + (AVAudioSessionPortDescription *)bluetoothAudioDevice { return [HDLAudioHelper audioDeviceFromTypes:[HDLAudioHelper bluetoothRoutes]]; } + (AVAudioSessionPortDescription *)builtinAudioDevice { NSArray *builtinRoutes = @[ AVAudioSessionPortBuiltInMic ]; return [HDLAudioHelper audioDeviceFromTypes:builtinRoutes]; } + (AVAudioSessionPortDescription *)speakerAudioDevice { NSArray *builtinRoutes = @[ AVAudioSessionPortBuiltInSpeaker ]; return [HDLAudioHelper audioDeviceFromTypes:builtinRoutes]; } + (AVAudioSessionPortDescription *)audioDeviceFromTypes:(NSArray *)types { NSArray *routes = [[AVAudioSession sharedInstance] availableInputs]; for (AVAudioSessionPortDescription *route in routes) { if ([types containsObject:route.portType]) { return route; } } return nil; } @end