カメラでキャプチャしたbyte[]データ(フレーム)をJNI部分に渡したい。いくつかのフレームを一度に渡す必要があるので、JNI から byte[] を取得できるように、byte[] を格納する byte[][] を作成できないか考えています。出来ますか?私はそれgetByteArrayElement()
が役立つかもしれないことを知っています. 誰もそれを達成する方法を知っていますか?
実は以前、キューを使って byte[] を渡すという目的を達成しようと試みたのですが、何人かの方が答えてくださったように、それは不可能のようです。
過去のコード (byte[] を arraylist に入れる):
aCamera.setPreviewCallback(new PreviewCallback(){
public void onPreviewFrame(byte[] data, Camera camera) {
synchronized (TestClass.this){
AFrame = data;
int i = 0;
queue = new ArrayList<byte[]>(definedSize);
if(queue.size()<definedSize){
queue.add(data);
}
else{
queue.remove(0);
}
TestClass.this.notify();
}
}
});
Arraylist は JNI では元に戻せないので、今回は別のバイト配列でできないかと考えています。
私はネイティブメソッドを使用したAndroidアプリ開発に非常に慣れていません。誰か私に何か提案をしてもらえますか? これが可能なアプローチであるかどうかを知りたいだけです。