最近在项目里面做语音许愿池功能,手机app上传语音,然后手机打捞投屏到pc端的时候,h5界面用audio标签播放音频的时候,部分音频不能播放(m4a格式)。经过调查判定应该是安卓手机上传的音频有问题,我们最终采用了华为,小米,一加手机进行音频解析,发现原来音频的声道不同,只有NBC格式的才能播放,而implicit格式的就无法播放。下图是三分音频的信息:
这样一看就很恶心了,最终采用的办法是用jave转换格式,转成mp3格式
File source = new File(source );
File target = new File(target );
AudioAttributes audio = new AudioAttributes();
audio.setCodec(“libmp3lame”);
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat(“mp3”);
attrs.setAudioAttributes(audio);
Encoder encoder = new Encoder();
encoder.encode(source, target, attrs);
用以上代码就ok了,不用考虑码率什么的。转换效率很快。
jar包我用的是jave-1.0.2的