音频编码之opus(二)

上一篇博客中介绍了如何通过NDK编译opus源码生成.so文件,本文接着介绍如何使用该opus.so文件来进行opus编解码。


首先,libs目录下创建armeabi文件夹,将编译好的opustool.so文件复制到该文件夹下。

然后,创建OpusTool类,用来调用native层代码,即调用opustool.so文件件中的相关方法。同样

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. public class OpusTool {  
  2.   
  3.     private static final String TAG = OpusTool.class.getName();  
  4.     static {  
  5.         try {  
  6.             System.loadLibrary("opustool");  
  7.             Log.e(TAG, "loaded library ");  
  8.         } catch (UnsatisfiedLinkError e) {  
  9.             Log.e(TAG, "Could not load library ");  
  10.         }  
  11.     }  
  12.   
  13.     private native String nativeGetString();  
  14.   
  15.     private native int encode_wav_file(String wav_path, String opus_path);  
  16.   
  17.     private native int decode_opus_file(String opus_path, String wav_path);  
  18.   
  19.     public String getNativeString() {  
  20.         return nativeGetString();  
  21.     }  
  22.   
  23.     public int encode(String wav_path, String opus_path) {  
  24.         return encode(wav_path, opus_path);  
  25.     }  
  26.   
  27.     public int decode(String opus_path, String wav_path) {  
  28.         return decode_opus_file(opus_path, wav_path);  
  29.     }  
  30. }  

nativeGetString()为测试方法,仅仅用于测试。


接下来在需要编/解码的时候调用相关方法即可:

编码:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. mOpusTool.encode(FILEPATHWAV,FILEPATHOPUS);  
解码:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. mOpusTool.decode(FILEPATHOPUS, FILEPATHWAV);  


关于使用AudioRecord录音可以参考

http://blog.csdn.NET/yangysng07/article/details/41150839

注意:保持OpusTool类的包名与编译opus源码时的OpusTool包名保持一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值