4

カメラでキャプチャした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アプリ開発に非常に慣れていません。誰か私に何か提案をしてもらえますか? これが可能なアプローチであるかどうかを知りたいだけです。

4

1 に答える 1