編輯:關於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
使用SlidingTabLayout需要准備2個類,分別是 SlidingTabLayout,與SlidingTabStrip,,放進項目中時只用修改下包名即可。 效果制
1. 圖片縮放後對齊的問題 在Android的開發中,如何使用圖片對很多開發人員是一個很頭痛的事。最常見的問題是在一台手機上調試好的UI,在不同dpi的手機上會變形。
日常生活中我們隨處可見對話框,上面有很多提示信息,更加方便提示用戶進行不同的操作。一、對話框的兩個特點和一些常見的對話框1.當彈出對話框是會結束UI線程(即主線程);2.
很久沒用開源項目,重新復習一下下拉刷新 也是想總結下一個項目,應該需要那些東西, 為自己打下基礎, 你也可以自己去下 library,關於源碼我會在後面放在 效果圖 p