android關於訊飛語音包的開發

來源:互聯網
上載者:User

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

 

用法及注意事項:

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.