将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,再此表示非常感谢!
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
android系统上使用编译好的ffmpeg的so库再用jni封装进行音频格式转换,主要是amr转为wav,可用于讯飞语音对wav音频格式的识别;完美解决讯飞在录音、传输和识别时因音频格式引发的难题(建议录音时用android原生API,MediaRecorder,录成amr格式,便于传输,要识别时再转换为wav格式)
资源推荐
资源详情
资源评论
收起资源包目录
android-ffmpeg-amr2wav.zip (10个子文件)
android-ffmpeg-amr2wav
FFmpegNativeHelper.java 1KB
readme.txt 980B
libs
armeabi
libswscale-3.so 293KB
libavfilter-5.so 739KB
libavdevice-56.so 58KB
libavutil-54.so 213KB
libavcodec-56.so 6.14MB
libswresample-1.so 73KB
libffmpegjni.so 222KB
libavformat-56.so 1.34MB
共 10 条
- 1
资源评论
- 大胡子的机器人2019-01-15我把libs/armeabi下面的文件添加到我的armeabi-v7a以及x86下面,可以使用,正常转换。后续再测一下兼容性
- llxx2122018-06-05java.lang.UnsatisfiedLinkError:报这个错啊,找不到OS文件qugengting2018-08-20我试了下,确实如此,找到问题原因了,这些so库是默认armeabi的,如果不指定ndk编译类型,androidstudio会自动把所有类型的都生成,但里面并没有so库,需要在build.gradle下添加: defaultConfig { ...... ndk { abiFilters 'armeabi' } }
qugengting
- 粉丝: 43
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功