微信服务号开发,使用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 audio タグを使用した iOS での再生について言及しているのか、それとも他の方法について言及しているのかわかりません。
h5 の場合は、まずこの再生ページを開くために使用しているブラウザが h5 をサポートしていることを確認してください (WeChat に付属しているブラウザは h5 をサポートしています)。それでも再生できない場合は、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/