HarmonyOS 鸿蒙Next media.AVRecorder录制mp3格式音频时长问题

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next media.AVRecorder录制mp3格式音频时长问题

目前使用media.AVRecorder去实现mp3音频录制,配置如下:

let profile: media.AVRecorderProfile = {
audioBitrate: 8000,
audioChannels: 2,
audioCodec: media.CodecMimeType.AUDIO_MP3,
audioSampleRate: 8000,
fileFormat: media.ContainerFormatType.CFT_MP3,
}

let config: media.AVRecorderConfig = {
audioSourceType: media.AudioSourceType.AUDIO_SOURCE_TYPE_MIC,
profile: profile,
url: fd://${fd}
}

录制后的文件上传到服务器,浏览器读取的音频时长与实际不符,音频是能播放的,不知道是哪个环节出了问题,录制多个音频实际时长小于8分44秒的都是显示8分44秒,超过8分44秒没测试过,然后尝试将audioBitrate改为16000,显示的时长变为4分钟左右,再将audioBitrate改为32000,显示的时长变为2分钟左右。但是还是与实际时长不匹配。没有朋友遇到过。

1 回复

针对HarmonyOS 鸿蒙Next中media.AVRecorder录制mp3格式音频时长问题,以下是一些可能的解决方案:

首先,确保录制配置正确。检查media.AVRecorderProfile中的audioBitrateaudioChannelsaudioCodecaudioSampleRatefileFormat等参数是否设置得当,这些参数会直接影响音频的质量和时长计算。

其次,音频时长问题可能与音频元数据有关。可以尝试使用media.AVMetadataExtractor来获取音频的元数据,包括时长信息。确保在获取元数据前,音频文件已完整写入并关闭。

此外,音频时长计算还可以通过公式推导:secTime = dataLength / (mSampleRate * mNumChannel * mBitsPerSample / 8),其中dataLength为音频数据大小,mSampleRate为采样率,mNumChannel为声道数,mBitsPerSample为位宽。

如果上述方法仍无法解决问题,建议检查音频文件的完整性,或尝试使用不同的音频录制和解析工具进行对比分析。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部