iOS設置藍牙外設播放音頻

首先,你需要明確地通知AVAudioSession你允許聲音可以被輸出到藍牙設備,通過setCategory設置
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord
withOptions:AVAudioSessionCategoryOptionAllowBluetoothA2DP
error:&error];
通過增加AVAudioSessionCategoryOptionAllowBluetoothA2DP, 我們允許iOS通過藍牙音頻設備來播放我們App的聲音。

接下來是設置藍牙設備作為音頻播放
1.設置為藍牙外設播放
NSArray * bluetoothRoutes = @[AVAudioSessionPortBluetoothA2DP, AVAudioSessionPortBluetoothLE,
AVAudioSessionPortBluetoothHFP];
NSArray * routes = [[AVAudioSession sharedInstance] availableInputs];
AVAudioSessionPortDescription blueRoute;
for (AVAudioSessionPortDescription
route in bluetoothRoutes)
{
if ([types containsObject:route.portType])
{
blueRoute = route;
}
}
NSError *error;
if (blueRoute) {
BOOL changeResult = [[AVAudioSession sharedInstance] setPreferredInput:bluetoothPort
error:&audioError];
}

2.設置耳機
NSArray * headsetRoutes = @[AVAudioSessionPortBuiltInMic];
NSArray * routes = [[AVAudioSession sharedInstance] availableInputs];
AVAudioSessionPortDescription headsetRoute;
for (AVAudioSessionPortDescription
route in headsetRoutes)
{
if ([types containsObject:route.portType])
{
headsetRoute = route;
}
}
NSError *error;
if (headsetRoute) {
BOOL changeResult = [[AVAudioSession sharedInstance] setPreferredInput:headsetRoute
error:&audioError];
}

3.設置麥克風
NSArray * speakerRoutes = @[AVAudioSessionPortBuiltInSpeaker];
AVAudioSessionPortBluetoothHFP];
NSArray * routes = [[AVAudioSession sharedInstance] availableInputs];
AVAudioSessionPortDescription speakerRoute;
for (AVAudioSessionPortDescription
route in speakerRoutes)
{
if ([types containsObject:route.portType])
{
speakerRoute = route;
}
}
NSError *error;
if (speakerRoute) {
BOOL changeResult = [[AVAudioSession sharedInstance] setPreferredInput:speakerRoute
error:&audioError];
}

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容