gpt4 book ai didi

Android:可以直接将麦克风保存到 SQLite,而无需读/写临时文件吗?

转载 作者:太空狗 更新时间:2023-10-29 13:04:02 33 4
gpt4 key购买 nike

我有一些关于如何记录麦克风输入的示例代码。据我了解,需要提供输出文件:

    public void MediaRecorderReady(){
mediaRecorder=new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
mediaRecorder.setOutputFile(AudioSavePathInDevice);
}

如果那是真的,我认为有一些考虑因素,比如可用内存(不知道录音会有多少等)。

是否有可能让 Android 分配内存,并记录麦克风输入 - 收集字节到变量,并将其作为 blob 写入 db?

还有,在播放blob场时,是否可以使用转换为.wav的方法?

最佳答案

由于生成文件的大小,使用 BLOB 存储音频可能会有时间限制。假设每分钟 300k,然后大约 20 分钟,由于游标窗口有 2mb 的限制,您将达到能够从存储的数据中提取的最大值。 (您可以存储大型 BLOBS,但如果不借助于使用 SQLite3 API 而不是使用内置 SQLiteDatabase 例程的某些自定义方法,则无法检索它们。

存储大数据的推荐方法是将数据存储为普通文件,然后将路径存储在数据库中。

基于 Internal Versus External BLOBs in SQLite , 最大 100k 的 BLOBS 可以比保存到文件系统时更有效地保存。

您可能还希望考虑 35% Faster Than The Filesystem .

关于转换为 .wav 这可能很有趣 JLayer project: MP3 decoder/player/converter library for Java™ platform.

关于Android:可以直接将麦克风保存到 SQLite,而无需读/写临时文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50900895/

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