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

基于Agora.io,如何在Flutter实时会话应用中录制对话及图片?

Flutter实时会话应用:对话内容及图片录制实现方案

一、实时语音对话录制

  • 采用flutter_sound或audio_recorder插件实现核心功能,这两个工具在Flutter社区的适配性和稳定性表现较好:
    • 触发录制:绑定会话的“按住说话”按钮事件,按下时调用startRecorder()(以flutter_sound为例),指定存储路径为应用沙盒的文档目录(通过path_provider获取)。
    • 停止与存储:松开按钮时调用stopRecorder(),将生成的音频文件路径关联到会话消息实体,同时可同步存入本地数据库或后端存储。
    • 后续管理:保存的音频文件可直接作为会话消息的附件,支持播放、导出等操作。

二、会话图片的留存与录制

1. 收发图片的本地存储

当会话中接收到或发送图片时,直接将图片文件持久化到本地:

  • 用path_provider获取getApplicationDocumentsDirectory()路径,创建专属的会话图片存储子目录。
  • 若为网络图片,先通过cached_network_image获取本地缓存文件,再复制到目标目录;若为本地图片,直接读取字节流写入指定路径,同时记录图片对应的会话ID、时间戳等元数据。

2. 界面中图片的录制(截图)

如果需要捕获会话界面上显示的带对话场景的图片,使用screenshot插件:

  • 给会话页面的内容区域包裹Screenshot组件,需要截图时调用capture()方法,生成图片文件后保存到本地。

三、完整会话过程录制(含对话+图片)

如果要把整个会话的交互过程(文字显示、语音播放、图片展示)录制为视频,使用screen_recorder插件:

  • 配置权限:Android端在AndroidManifest.xml添加android.permission.RECORD_AUDIO和android.permission.WRITE_EXTERNAL_STORAGE;iOS端在Info.plist添加NSMicrophoneUsageDescription和NSScreenRecordingUsageDescription。
  • 控制录制:进入会话页时调用startRecord(),退出时调用stopRecord(),生成的视频文件会完整记录界面中的所有内容。
  • 内容提取:若仅需分离音频和图片,可借助ffmpeg_kit_flutter插件,从视频中提取音频轨,或截取指定帧保存为图片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:37:30