Rumah > Soal Jawab > teks badan
微信服务号开发,使用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();
}
}
PHP中文网2017-04-17 17:32:38
Saya tidak pasti sama ada anda merujuk kepada main balik pada ios menggunakan tag audio h5 atau kaedah lain.
Jika ia adalah h5, mula-mula pastikan penyemak imbas yang anda gunakan untuk membuka halaman main balik ini menyokong h5 (yang disertakan dengan WeChat menyokongnya). Jika masih tidak boleh dimainkan, cari sebab pada fail MP3.
FFmpeg mempunyai keperluan yang berbeza pada pelayan yang berbeza Jika pelayan anda adalah Linux, sila pastikan bahawa bilangan bit ffmeg adalah sama dengan bilangan bit linux, dan versi kernel Linux perlu 2.6.32 ke atas.
Akhir sekali, anda tidak disyorkan untuk memadamkan fail sumber Kualiti bunyi mp3 yang ditukar oleh ffmpeg sangat lemah. Fail sumber boleh disimpan dalam format amr dan digunakan untuk mesej suara kumpulan atau balasan pasif kepada mesej suara .
Dilampirkan artikel tentang ffmpeg: http://linjie.org/2015/08/06/amr格式转mp3格式-完美解决Linux下转换0K问题/