HarmonyOS 鸿蒙Next media.AVRecorder录制mp3格式音频时长问题
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分钟左右。但是还是与实际时长不匹配。没有朋友遇到过。
针对HarmonyOS 鸿蒙Next中media.AVRecorder录制mp3格式音频时长问题,以下是一些可能的解决方案:
首先,确保录制配置正确。检查media.AVRecorderProfile
中的audioBitrate
、audioChannels
、audioCodec
、audioSampleRate
和fileFormat
等参数是否设置得当,这些参数会直接影响音频的质量和时长计算。
其次,音频时长问题可能与音频元数据有关。可以尝试使用media.AVMetadataExtractor
来获取音频的元数据,包括时长信息。确保在获取元数据前,音频文件已完整写入并关闭。
此外,音频时长计算还可以通过公式推导:secTime = dataLength / (mSampleRate * mNumChannel * mBitsPerSample / 8)
,其中dataLength
为音频数据大小,mSampleRate
为采样率,mNumChannel
为声道数,mBitsPerSample
为位宽。
如果上述方法仍无法解决问题,建议检查音频文件的完整性,或尝试使用不同的音频录制和解析工具进行对比分析。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。