これは、android-ndk で徹底的に作業した人だけが答えられると思う問題です。
問題:ファイル エクスプローラーを使用して入力ファイルを読み取るアプリケーションを作成しました。次に、[デコードと再生] ボタンが押されると、アプリケーションはエンコードされた入力ファイルをデコードし、デバイスの画面に表示する必要があります。ここでの問題は、デコードがネイティブ コードで実行されることです。SDカードにダンプし、生のビデオプレーヤーを使用して検証したため、デコードは適切です。デコードされたフレームは RGB888 形式で、データ型はunsigned charです。したがって、ネイティブコードからデータを表示する方法を知っている人は、同じことについていくつか提案してください。
私は試しました:最初にネイティブコードが呼び出された関数にフレームバッファを返し、次にフレームバッファをchar配列に変換し、この配列をJavaオブジェクト(つまりjcharArray)としてアクティビティに返しました。私のアクティビティでは、char 配列を int 配列に変換し、setpixels() 関数を使用してこの配列をビットマップに割り当てました。そして、キャンバスを使用して、このフレームをデバイス画面に描画しました。どのようにアプリケーションがクラッシュしたか、主なことは、フレームがデコードされるたびにコントロールが Java アクティビティに戻らないように見えることです。さらに、この手法が機能したとしても、表示されるフレームが非常に遅くなり、ビデオのようには見えません。
ですから、同じことをするための提案やテクニックを提供してくださるようお願いします。よろしくお願いします...返信を待っています...