gpt4 book ai didi

android - MediaRecorder 捕获的音频文件在发送到服务器后损坏

转载 作者:行者123 更新时间:2023-11-29 23:09:16 27 4
gpt4 key购买 nike

我的应用程序录制了一个音频 fragment ,并在录制完成后使用 Retrofit2 将 fragment 发送到服务器。服务器接收到文件,但是文件损坏了,我说的损坏是无法播放。我使用以下 URL(示例 /audio/myaudio.mp4)播放音频剪辑,我使用 postman 尝试使用另一个音频文件,音频文件可以成功播放。此外,即使下载Android 通过 Filezilla 捕获的音频剪辑也有相同的损坏文件。

这是我录制音频的方式:

mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mRecorder.setAudioEncodingBitRate(32000);
mRecorder.setAudioSamplingRate(44100);

File root = android.os.Environment.getExternalStorageDirectory();
File file = new File(root.getAbsolutePath() + "/Audios");
if (!file.exists()) {
file.mkdirs();
}

outputFile = root.getAbsolutePath() + "/Audios/" + String.valueOf(System.currentTimeMillis() + ".mp3");
Log.d("filename",outputFile);
mRecorder.setOutputFile(outputFile);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

我也尝试将文件扩展名更改为 .mp3 、 .mp4 和 .3gpp ,但它们似乎都不能在服务器端工作。为了清楚起见,我附上了使用 Retrofit2 将音频文件发送到服务器的代码:

其他人也问过同样的问题。我尝试了这些解决方案,但也没有用。谁能帮帮我。

问题:Audio file captured by MediaRecorder is broken after it is sent to server using Retrofit 2

最佳答案

AAC 格式对我有用

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

关于android - MediaRecorder 捕获的音频文件在发送到服务器后损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56181012/

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