将libs下的so库复制到项目中,再复制FFmpegNativeHelper类到代码里面,注意不要改变其包名,否则jni识别不到native方法
amr转换为wav的方法如下:
//amr转wav,source为amr路径,target为转换为wav后的路径
private void ffmpegCommandAmr2Wav(String source, final String target) {
final String command = "ffmpeg -i " + source + " -vn -acodec pcm_s16le -ab 256k -ac 1 -ar 16000 -f wav -y " + target;
Runnable compoundRun = new Runnable() {
@Override
public void run() {
FFmpegNativeHelper.runCommand(command);
//音频转换结束,开始语音识别
//......
}
};
//将runnable放在异步线程执行
}
此方法的command参考的是jave-1.0.2,这是JAVA开源项目,使用的也是ffmpeg,可惜貌似不适用于android;
so库和help类来源于github开源https://github.com/dxjia/ffmpeg-compile-shared-library-for-android
和https://github.com/dxjia/ffmpeg-commands-executor-library,再此表示非常感谢!