android ble缓冲区,Android:使用内存缓冲区作为文件

开发者正尝试使用Android系统的MediaRecorderAPI替代第三方应用来录制自行车骑行过程中的音频。他们希望在录音过程中,当按下‘备忘录’标记时,能将特定时间段的音频保存为独立文件,同时继续记录完整的骑行音频。目前,他们需要调整MediaRecorder的输出,使其写入内存缓冲区,以便于分块保存,并实现并行保存备忘录音频。
摘要由CSDN通过智能技术生成

目前我正在用第三方应用程序录制我骑自行车的音频,而我的应用程序则记录GPS和BLE数据。我的应用程序还可以设置标记,用于标记我在麦克风中发表评论(“备忘录”)的时间点,以便我可以将其映射到音频录制。

这个

GitHub issue

它有截图可以给你一个更好的主意,但它不显示标记。

我已经开始尝试安卓系统

MediaRecorder API

在我的应用程序中,我想我可以用它来代替第三方应用程序。我测试了一下,效果相当不错。

现在查看MediaRecorder文档中的以下代码:

MediaRecorder recorder = new MediaRecorder();

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

recorder.setOutputFile(PATH_NAME);

recorder.prepare();

recorder.start(); // Recording is now started

这是问题所在:

recorder.setOutputFile(PATH_NAME);

.

我想做的是不要在

PATH_NAME

,但是进入一个内存缓冲区,它必须使我能够在数据流上迭代,逐字节chuck(即每1024字节),然后我将自己保存到一个文件中。

我之所以要这样做,是为了能够将一定数量的字节块并行保存到第二个文件中。这样,当我按下应用程序中的“备忘录”标记按钮时,它将开始将我对麦克风所说的内容存储到一个单独的文件中,大约10秒钟,同时仍将完整的音频记录到主文件中。这样,我就可以创建一个rss提要(或电子邮件)的所有备忘录从骑自行车,而不是必须加载整个1h+文件和跳过标记的部分。

MediaRecorder API提供以下重写:

void setOutputFile(FileDescriptor fd)

void setOutputFile(String path)

void setOutputFile(File file)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值