問題タブ [textureview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - カスタム描画に SurfaceView または TextureView を使用する理由 Canvas がハードウェア アクセラレーションされていない
だから私は、アニメーションのために多くの Canvas drawText、drawPath、drawArc、drawLine、および drawCircle を実行しています...
SurfaceView を使用して lockCanvas と unlockCanvasAndPost を実行すると、キャンバスへの描画に 16 ミリ秒以上かかっていることが判明し、20 回に 1 回と言われています
ハードウェアの描画時間? 0 ~ 2 ミリ秒
では、なぜ月着陸船は SurfaceView の 3 倍未満なのですか? ハードウェアで加速されたキャンバスとソフトウェアで減速されたキャンバスを打ち負かすことはできなかったと思います。
android - MediaCodec と TextureView の Z オーダーの問題
私の Android アプリでは、次の Z オーダーで 3 つのビューをレンダリングする必要があります。
- 下部には、
MediaCodec
画面全体をカバーするデコーダーの出力面があります。によって生成された画像を変換する必要があるという要件がありますMediaCodec
(たとえば、スケーリングする) - 中央には、
GLSurfaceView
(または私が定義した GL シェーダーを実行している他のサーフェス/ビュー) が画面全体をカバーしています。MediaCodec
明らかに、このレイヤーの一部のピクセルは、下の出力を見るために透明になります。 - その上に、他のビュー - と言う
ImageView
。これらの最上部のビューに透明性が必要かどうかはわかりませんが、おそらく完全に不透明な長方形のビューで問題ありません。画面全体をカバーするわけではなく、移動します。
これは不可能のように見えますが、何かが欠けているか、より低いレベルでより多くの努力を払ってそれを行う方法がある可能性があります (たとえば、EGL コンテキストなど... 現在理解していません)。
これを機能させることができず、不可能ではないかと心配している理由は次のとおりです。
- 一番下の
MediaCodec
出力レイヤー (1) では、画像を変換できる必要があります。したがって、レンダリングする MediaCodec に指定するサーフェスは、TextureView
GLSurfaceView
中央(2)の透明なピクセルを通して見ることができるようにするには、を呼び出す必要がありますGLSurfaceView.setZOrderOnTop(true)
。それ以外の場合、GLSurfaceView は不透明です。- ただし、呼び出し
GLSurfaceView.setZOrderOnTop(true)
は、他のビュー (3) が の上にレンダリングされないことを意味しますGLSurfaceView
。たとえば、ImageView
は常に の不透明なピクセルの後ろに表示されGLSurfaceView
ます。
呼び出しGLSurfaceView.setZOrderMediaOverlay(true)
の代わりに、GLSurfaceView.setZOrderOnTop(true)
これに対処し、このタイプの Z オーダーを容易にすることを意図しているようです。そして、最下層のMediaCodec
出力レイヤーがSurfaceView
. しかし、私はそれをTextureView
変換できるようにする必要があります。その下にGLSurfaceView.setZOrderMediaOverlay(true)
がある場合は機能しないようです。透明なピクセルを通して表示されるのではなく、中間レイヤーによって完全に隠されています。TextureView
TextureView
GLSurfaceView
この Z オーダーは不可能であるというのは正しいですか? それとも、EGL やコンテキストなどをいじることで実現できますか?
java - プレビュー停止後にビットマップがサーフェスビューに正しく表示されない
こんにちは、私は次のレイアウトを持っています:
TextureView と SurfaceView を使用します (SurfaceView を削除できると思いますが、現時点では方法がわかりません)。
次のメイン アクティビティ:
public class MainActivity extends Activity implement TextureView.SurfaceTextureListener {
}
プログラムは、onElaborateClicked(View view) が呼び出されるときのほぼ最後までうまく動作します (いくつかのショットを取り、それらを精巧に作成し、出力 "combined.jpg" ファイルをディレクトリ mSnapDir に保存します)。エラボレーションが正しく実行され、プレビューが停止しますが、画面にビットマップを表示しようとすると機能しません。getHolder() を呼び出すために SurfaceView を追加しました (おそらく最も簡単な方法があります)。
質問は次のとおりです。
1) ビットマップが表示されないのはなぜですか (存在します!)? おそらく、SurfaceView は TextureView の「背面」にあり、表示されませんか?
2) SurfaceView を追加することを避け、TextureView で直接すべての作業を行うことができますか? 最終的なビットマップを表示するためだけに SurfaceView を追加しました (他の方法はわかりません)。
どんな助けでも本当に感謝します。前もって感謝します!
android - Android の「Surface」クラスを使用するにはどうすればよいですか?
Surface、SurfaceHolder、EGLSurface、SurfaceView、GLSurfaceView、SurfaceTexture、TextureView の詳細な説明はありますか? 特に:
- SurfaceView と TextureView の違いは何ですか?
- OpenGL ES を使用するには GLSurfaceView を使用する必要がありますか?
- Surface と EGLSurface はどのように相互作用しますか?
- SurfaceTexture は何をしますか?
- SurfaceView で描画したものが、他のすべての上または下に移動する必要があるのはなぜですか?
- SurfaceFlinger とは何ですか?
- ステータス バーとナビゲーション バーの構成はどのように機能しますか?
- ところで、Android でゲーム ループを構成する正しい方法は何ですか?
android - Android TextureView OpenGLRenderer﹕ GL_INVALID_OPERATION
カメラのプレビューを表示したり、ビデオを再生したりするための TextureView を持つ 2 つのフラグメントがあります。
しばらくアプリを使用して画面を操作した後、logcat にこのエラーが表示されます
フラグメントからすべてを解放すると、すべてのメンバーが null に設定されます。
そして、私は全体のビューが奇妙になるのを見ます...
私は何が欠けていますか?