【发布时间】:2021-05-04 10:57:41
【问题描述】:
我正在开发音频录制功能。我希望将录制的音频保存到我的应用程序的内部缓存目录中,以便我以后可以处理它并将其发送到我的服务器。我在我的 Android Manifest 中使用了RECORD_AUDIO_PERMISSION。
以下是我计划用于录制音频并将其保存到文件中的代码。
String uuid = UUID.randomUUID().toString();
fileName = getExternalCacheDir().getAbsolutePath() + "/" + uuid + ".3gp";
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setOutputFile(fileName);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
recorder.prepare();
recorder.start();
} catch (IOException e) {}
我希望上面的代码可以正常工作,但我面临另一个问题。我想为我使用这个library 的应用程序创建一个波形效果。该库适用于以下代码:
//get a reference to the visualizer
mVisualizer = findViewById(R.id.blast);
//TODO: get the raw audio bytes
//pass the bytes to visualizer
mVisualizer.setRawAudioBytes(bytes);
现在,我的问题是如何实时获取正在录制和保存的音频的字节数? 我应该定期读取文件并从中提取最近的字节,还是有其他方法可以实现这一点。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
您应该使用
MediaPlayer以外的其他方法。类似that。 -
@AndriiOmelchenko 谢谢你的评论。很快就会看到并更新您。
-
在我的情况下,我使用了 webview 和 webRTC 记录,请参阅stackoverflow.com/questions/67269328/…
-
嗨,@AndriiOmelchenko 我查看了您提供的链接,但不明白如何准确使用它。能否请教一下如何使用?
-
@Jintor 是您提供的适用于 Android 的链接吗?
标签: java android file audio audio-recording