首页 > 解决方案 > 在 Flutter 应用程序中检测来自麦克风的声音字节暂停

问题描述

我在 pub.dev 上遇到了这个插件 - https://pub.dev/packages/sound_stream - 在寻找从颤振应用程序(针对 Android 和 iOS)收听麦克风的解决方案时。

我可以使用这个插件来收听来自麦克风的用户话语以及在我的应用程序需要时播放音频。要求如下:

  1. 聆听来自麦克风的用户话语,
  2. 将从麦克风接收到的音频字节流转换为 base64 编码的字符串,
  3. 通过调用 REST API (POST) 将音频字符串发送到服务,
  4. 或者,如果服务返回音频(以 base64 编码字符串的形式),则解码音频输出字符串,并播放声音字节。

所有这些步骤都运行良好——无论是在 Android 还是 iOS 上。但是,在 MVP 中,我不知道如何检测用户话语中的暂停(在从麦克风接收的音频流中)并自动触发 REST API 调用。目前,我的应用程序要求用户打开和关闭麦克风按钮才能说话,然后将他们的音频发送到服务。因此,用户当前需要点击麦克风按钮(在我的应用程序上)以激活 sound_stream 插件的 RecorderStream,说话并再次点击麦克风按钮以关闭 RecorderStream,此时我的应用程序调用 API。这就像那些过去美好时光的对讲机!

我想避免这种情况,并在检测到用户语音暂停并将在此之前收到的声音字节发送到服务时无缝调用 API。关于我如何能够实现这一目标的任何想法?

任何提示将不胜感激。

标签: androidiosaudioflutter-dependencies

解决方案


推荐阅读