chenqiyang
2021-08-27 6a63c4281fbe7e17103115320cd276397d733081
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//
//  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