gpt4 book ai didi

android - 连续录制音频并更新 View

转载 作者:行者123 更新时间:2023-12-03 02:01:42 25 4
gpt4 key购买 nike

我需要在 Android 应用程序中连续(数小时)录制来自麦克风的未压缩音频,处理音频并在绘图中可视化结果。如果应用程序失去焦点,绘图可以(并且应该)停止,但记录和分析不应该。

我不确定我得到了正确的步骤,所以这是我想到的实现:

  • 一个 RecordActivity处理 View ,特别是在结果到达时绘制结果并处理按钮按下。一个 record按钮开始 RecordService
  • 一个 RecordService服务初始化 android.media.AudioRecord并在其AudioRecord.OnRecordPositionUpdateListener读取缓冲区,将其保存到文件并分析其内容。存储分析结果。
  • RecordService使用 PendingIntent将分析结果传达给 RecordActivity ,更新情节。
  • 当用户按下停止按钮时,RecordActivity通过调用 stopService 终止服务.

  • 我的问题是:
  • 为此使用服务是否正确,或者我可以只使用 Activity ?
  • 使用已启动的服务而不是绑定(bind)的服务是否正确?
  • 这个进程的哪些部分应该由不同的线程(甚至进程)处理? AudioRecord嗯? (分析显然取决于要求)。整个服务?
  • 该服务应该是前台服务吗?
  • 一般来说,这种结构是否正确?
  • 最佳答案

  • 一个 Service是一个很好的解决方案,我不明白你为什么要使用 PendingIntent .也许你应该考虑使用 LocalBroadcast和正常 Intent
  • 在这种情况下,由于服务绑定(bind)到 Activity 的生命周期, 我建议使用有界 Service :)
  • 这要看情况。如果 AudioRecording 实现有自己的线程(正如我在 Android 中猜想的那样),那么并不严格要求使用线程。但是,如果您将许多数据写入文件系统,最好在服务内部启动一个线程并在那里处理您的逻辑(请记住,服务不是线程)
  • 这取决于您的设计。如果您暂停 Service应用程序进入后台时的逻辑,没有必要。但是,如果即使应用程序进入后台,您也需要您的服务,那么最好使用前台 Service
  • 总的来说,我认为这是一个很好的解决方案
  • 关于android - 连续录制音频并更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31023682/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com