Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android關於訊飛語音包的開發

android關於訊飛語音包的開發

編輯:關於Android編程

這個是一個定制庫的例子。

 

用法及注意事項:

1. 將語音庫Aisound.so,放在:

  libs\armeabi\libAisound.so。

注意:armeabi目錄下的庫,都要加上lib的前綴,為了方便調用。

 

2. resource.irf 文件:

先將它打包到apk裡,放在如下路徑。

\res\raw\resource.irf

然後在程序運行的時候,讀取並解壓到軟件目錄,拿到路徑及文件名。

 

3.使用

3.1 初始化庫

System.loadLibrary("Aisound");

注意:這個("Aisound");指的就是那個libAisound.so。

 

3.2 生成resource.irf到本地存儲

代碼:

try {
   InputStream stream = getResources().openRawResource(R.raw.resource);

   OutputStream out = openFileOutput("resource.irf",
     Activity.MODE_PRIVATE);
//   OutputStream out = openFileOutput("/sdcard/Resource.irf", Activity.MODE_PRIVATE);
  

   byte buf[] = new byte[16384];
   int numread = 0;
   do {
    numread = stream.read(buf);
    if (numread <= 0) {
     break;
    } else {
     out.write(buf, 0, numread);
    }
   } while (true);
   out.close();

   return true;
  } catch (IOException e) {
   e.printStackTrace();
   return false;
  }

注意標紅的部分,這個文件直接寫到:/data/data/xxxxxx/files/resource.irf

 

3.3 初始化引擎

Tts.JniCreate("/data/data/xxxxxx/files/resource.irf");
Tts.JniSetParam(256, 1);
Tts.JniSetParam(1280, 20);

請注意標紅,這個是軟件的路徑。也就是我需要把resource.irf文件寫到這個路徑下。當然也可以寫到sd卡上或存儲上。

3.4 使用

 不說了,自己封裝吧!

 

備注:

這裡要說的問題:

1.關於庫的調用,由於封裝的時候制定了包名和類名,所以在調用如下接口時

public static native int JniGetVersion();
 public static native int JniCreate(String resFilename);
 public static native int JniDestory();
 public static native int JniStop();
 public static native int JniSpeak(String text); 
 public static native int JniSetParam(int paramId,int value);
 public static native int JniGetParam(int paramId);
 public static native int JniIsPlaying();
 public static native boolean JniIsCreated();

必須使用默認編譯的包名和類名。如果想改類名,那麼對不起,要重新編接口函數哦! 當時我大意了,浪費了好多時間。

 

2.關於.irf文件使用

目前接口是使用文件路徑,所以要將他打包,然後解壓到本地存儲。

還可以直接修改接口,使其直接使用流的方式,我看了,好像是char型

為了以後版本庫可以更新,我沒有去判斷文件是否存在,而是程序每次啟動都去生成文件。我不知道怎麼去判斷是新的庫,利用文件大小?

 

 

作者:lxmhuendan
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved