微信服务号开发,使用jssdk上传语音,然后再利用下载接口将语音下载到本地服务器为amr格式,ios无法直接播放,所以在网上找了实现转码功能的代码.
但是在使用ffmpeg转码为MP3格式后,转码后的文件可以在安卓端,
PC端正常使用,在ios上无法正常播放,点击播放,没有声音,这问题该怎么解决呢,还是我转码中有什么问题?
使用java做为开发语言,以下是实现转码功能的代码
/**
* @param nowPath 转码前文件保存路径
* @param afterPath 转码后文件保存路径
* @param choice 是否删除原文件,true为删除
*/
public static void convertVoice(String nowPath,String afterPath,boolean choice) {
File source = new File(nowPath);
File target = new File(afterPath);
AudioAttributes audio = new AudioAttributes();
Encoder encoder = new Encoder();
audio.setCodec("libmp3lame");
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
try {
encoder.encode(source, target, attrs);
} catch (IllegalArgumentException e) {
//e.printStackTrace();
} catch (InputFormatException e) {
//e.printStackTrace();
} catch (EncoderException e) {
//e.printStackTrace();
}
//如果传入布尔类型为真,删除原文件
if(choice){
source.delete();
}
}
h5 오디오 태그를 사용하여 iOS에서 재생한다는 뜻인지, 아니면 다른 방법을 말하는 것인지 잘 모르겠습니다.
h5인 경우 먼저 이 재생 페이지를 여는 데 사용하는 브라우저가 h5(WeChat과 함께 제공되는 브라우저가 지원함)를 지원하는지 확인하세요. 그래도 재생이 되지 않는다면 MP3 파일을 확인하여 원인을 찾아보세요.
FFmpeg는 서버마다 요구 사항이 다릅니다. 서버가 Linux인 경우 ffmeg 비트 수가 Linux 비트 수와 동일한지 확인하고 Linux 커널 버전이 2.6.32 이상이어야 합니다.
마지막으로, ffmpeg로 변환한 mp3의 음질은 매우 좋지 않습니다. 소스 파일은 amr 형식으로 저장하여 그룹 음성 메시지나 음성 메시지에 대한 수동 응답에 사용할 수 있습니다. .
첨부된 ffmpeg에 관한 기사: http://linjie.org/2015/08/06/amr%E6%A0%BC%E5%BC%8F%E8%BD%ACmp3%E6%A0%BC% E5%BC%8F-%E5%AE%8C%E7%BE%8E%E8%A7%A3%E5%86%B3Linux%E4%B8%8B%E8%BD%AC%E6%8D%A20K% E9 %97%AE%E9%A2%98/