java使用ACRCloud将音频记录保存在文件中
我有一个叫ACRCloud的Android应用程序的问题。 对于我需要做的工作,我想将录音保存在MP3文件中,但我不知道为什么它不起作用
这是我的密码:
File f = null;
try {
f = createAudioFile();
} catch (IOException e) {
e.printStackTrace();
}
byte[] data = acrCloudResult.getRecordDataPCM();
if(f.exists()){
String path = f.getPath();
FileOutputStream stream = null;
try {
stream = new FileOutputStream(path);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
stream.write(data);
} catch (IOException e) {
e.printStackTrace();
}
}
# 1 楼答案
来自“acrCloudResult.getRecordDataPCM()”的PCM音频数据格式为“PCM 16位,单声道8000 Hz”,此音频数据缓冲区不包括“音频头”
您可以将wav头添加到PCM音频数据中,可以参考以下代码“writeWaveFileHeader”,此步骤可以将PCM转换为wav,您可以使用音频播放器播放此wav文件
writeWaveFileHeader(stream,data.length,data.length+368000,12000)
您可以使用第三方库将PCM/WAV转换为MP3。例如:Lame,您可以引用此代码https://github.com/Jay-Goo/Mp3Converter