You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS端使用flutter_sound ^8.3.12出现RecordingPermissionException异常求解

异常诱因
  • flutter_sound 8.3.12在iOS端运行时,要求在初始化录音器前必须已获得麦克风权限,仅在Info.plist中配置权限说明无法满足运行时权限校验要求,未主动触发权限申请就调用录音器初始化方法时会直接抛出RecordingPermissionException异常。
  • 若已调用权限申请逻辑,但未等待授权结果返回就提前执行录音器初始化操作,也会触发该异常。
  • iOS 15及以上系统对音频会话的启动时机做了更严格的限制,在权限未确认的情况下提前调用音频会话初始化接口,也会触发权限校验失败。
修复方案
  • 第一步:在pubspec.yaml中引入权限管理依赖permission_handler:
dependencies:
  flutter_sound: ^8.3.12
  permission_handler: ^10.2.0
  • 第二步:调整录音初始化逻辑,先申请麦克风权限,确认授权通过后再执行录音器初始化操作,参考代码如下:
import 'package:permission_handler/permission_handler.dart';
import 'package:flutter_sound/flutter_sound.dart';

Future<void> prepareRecorder() async {
  // 申请麦克风权限
  PermissionStatus micPermission = await Permission.microphone.request();
  if (!micPermission.isGranted) {
    // 自行处理权限拒绝逻辑,比如弹窗提示用户
    return;
  }
  // 权限通过后再初始化录音器、配置音频会话
  FlutterSoundRecorder recorder = FlutterSoundRecorder();
  await recorder.openRecorder();
  // 后续录音配置逻辑
}
  • 第三步:调整代码执行顺序,确保所有音频会话相关的初始化操作,都放在麦克风权限授权通过之后执行,不要提前调用openAudioSession相关接口。

内容的提问来源于stack exchange,提问作者nike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:36:02