Flutter iOS端音频无法在AirPods/蓝牙音箱播放,仅手机扬声器出声
iOS端蓝牙音频设备无声音问题解决方案
问题分析
使用audioplayers: ^4.1.0播放音频时,iOS端已连接的蓝牙设备(AirPods/蓝牙音箱)无法出声,仅手机主扬声器有声音,Android端正常。核心原因是iOS默认音频会话类别未启用蓝牙音频路由支持。
解决方案
在初始化AudioPlayer时,配置iOS专属的音频会话参数,指定支持蓝牙播放的类别:
修改代码步骤
- 在页面初始化阶段(比如
StatefulWidget的initState方法)添加音频会话配置:
@override void initState() { super.initState(); _initAudioPlayer(); } void _initAudioPlayer() async { audioPlayer = AudioPlayer(); // 配置iOS音频会话,开启蓝牙设备播放支持 await audioPlayer.setAudioSessionCategory( AudioSessionCategory.playback, mode: AudioSessionMode.music, // 音频为语音可改用AudioSessionMode.spokenAudio options: AudioSessionOptions( allowBluetooth: true, mixWithOthers: false, ), ); }
- 确保音频会话配置在播放操作前完成,避免临时设置导致的路由失效。
关键参数说明
AudioSessionCategory.playback:该类别专为音频播放场景设计,支持将音频路由到蓝牙、耳机等外部音频输出设备。allowBluetooth: true:明确允许iOS系统将音频输出到已连接的蓝牙设备,是解决该问题的核心配置。mixWithOthers:设为true时允许当前音频与其他应用音频混合播放,设为false则独占音频通道。
验证步骤
- 重新编译并运行iOS项目
- 连接AirPods或蓝牙音箱
- 触发音频播放,检查蓝牙设备是否正常出声
内容的提问来源于stack exchange,提问作者Kanwarpreet Singh
相关产品推荐
相关产品推荐

