Ai_GirlFriend/xuniYou/语音通话配置说明.md
2026-02-28 09:40:18 +08:00

2.3 KiB
Raw Blame History

语音通话功能配置说明

已完成的配置

1. manifest.json 配置

已添加以下权限:

Android 权限

"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>"

iOS 权限

"privacyDescription" : {
    "NSMicrophoneUsageDescription" : "与模拟女友聊天"
}

模块配置

"modules" : {
    "Record" : {},
    "Camera" : {},
    "VideoPlayer" : {},
    "OAuth" : {}
}

2. 小程序配置

微信小程序权限已配置:

"permission" : {
    "scope.record" : {
        "desc" : "你的麦克风将用于音频录制"
    }
}

使用说明

按住说话功能

  1. 进入语音通话页面:录音会自动初始化
  2. 按住麦克风按钮:开始发送音频数据
  3. 松开按钮:停止发送音频数据(录音继续但不发送)
  4. 右上角开关:控制麦克风权限的开启/关闭

交互逻辑

  • 🎤 表示麦克风已开启
  • 🔇 表示麦克风已关闭
  • 按住说话时按钮会放大并发光
  • 如果麦克风关闭,按住说话会提示"请先开启麦克风权限"

重新编译

修改 manifest.json 后需要:

  1. App 端:重新打包(云打包或本地打包)
  2. 小程序端:重新编译并上传
  3. H5 端:重新编译即可

调试建议

控制台日志

  • 查看 "开始录制" 日志确认录音启动
  • 查看 "开始说话" / "停止说话" 日志确认按钮事件
  • 查看 WebSocket 连接状态

常见问题

  1. 录音权限被拒绝

    • Android检查应用权限设置
    • iOS检查隐私设置中的麦克风权限
    • 小程序:首次使用会弹出授权提示
  2. recorderManager 未定义

    • 已修复:现在会在 onLoad 时根据平台初始化
    • App 端使用原生插件,小程序端使用 uni.getRecorderManager()
  3. 音频数据未发送

    • 确保 WebSocket 连接成功
    • 确保按住了说话按钮
    • 确保麦克风权限已开启

技术细节

录音参数

  • 格式PCM
  • 采样率16000Hz
  • 声道:单声道
  • 帧大小2KB低延迟

按住说话实现

  • 使用 @touchstart@touchend 事件
  • 录音持续进行,但只在按住时发送数据
  • 避免频繁启停录音造成的延迟