問題タブ [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.

0 投票する
2 に答える
1140 参照

android - TextureView で再生するとビデオの fps が低くなる

Androidアプリ用のビデオフィルターを作成しているので、TextureViewビデオを再生してその上でフィルター処理するために使用していSurfaceTextureます。しかし、ビデオの FPS は常にオリジナル (30fps) よりも低くなります。

Galaxy S3で確認したところ、onSurfaceTextureUpdated()フィルターの有無にかかわらず、1秒間に5~8回しか入力できませんでした。しかし、Samsung Galaxy J などのより強力なデバイスでは、1 秒あたり 10 ~ 13 回に増加する可能性があります。

このビデオは SD カードから読み込まれることに注意してください。

誰かが理由を知っていますか?

0 投票する
1 に答える
1944 参照

android - Android GLSurfaceView にテクスチャをレンダリングする方法

標準の GLSurfaceView クラスがあります。

GLSurfaceView.Renderer を実装する Renderer クラスがあります。

別の JNI スレッドで、いくつかのビデオ データ (YUV 形式) を OpenGLES テクスチャにアップロードしました。新しいテクスチャが利用可能であり、対応するテクスチャ ID があるという通知を Java で受け取ります。

パフォーマンスへの影響を最小限に抑えて、Renderer クラスでこのテクスチャのコンテンツを表示するにはどうすればよいですか?

0 投票する
1 に答える
2924 参照

android - Android - 複数のビューで同じビデオをレンダリングする

メディア データソースがあり、 android を使用してメディアを再生していますMediaPlayer

MediaPlayerからのビデオ出力を同じ の複数のビューに表示するにはどうすればよいActivityですか? これを行う別の方法はありますか?

データ ソースから何度も読み取ることなく、メディアのビデオ部分を2 つの異なるビューでレンダリングしたいと考えています。

現在のコード:

0 投票する
0 に答える
8858 参照

android - TextureView でビットマップを描画するにはどうすればよいですか

Androidでビデオを再生しようとしていTextureViewます。ビデオに関しては、すべてがうまく機能します。しかしMediaPlayer.prepare();、少し時間がかかります。そのため、その時のプレースホルダーをいくつか示したいと思います。私はこのようにグライドでそれをやろうとしています:

しかし、それは画像を表示しません。私は手動SurfaceViewで呼び出す必要がありますonDraw。そして、これにはSurfaceHolderが使用されています。しかし、方法TextureViewがありませんgetSurfaceHolder()

これを行う正しい方法は何ですか?

UPD:私が理解したのは、設定しないと画像が表示されるということです。これは、ビデオをバッファリングしている間、表面を黒く保つMediaPlayerことを意味します。MediaPlayerどうにかしてこの動作をオーバーライドすることは可能ですか?

0 投票する
2 に答える
887 参照

java - TextureView keeps getting SIGSEGV 11

I have found this Solution, but unfortunately, it didn't work for me. When I'm only displaying a small moving rectangle, so no taxing animations, it works fine, but I want to display some animation frames that I load in with a .png, and whenever I minimize my app or press the back button, I immediately get a SIGSEV error.

For one screen where I draw a graph with a lot of points I found a solution in which I just stop the thread after I'm done drawing the lines, but since I need to display a moving animation I can't do it in this particular fragment.

My code for for the render thread looks like this:

This is obviously based on Romain Guy's example which can be found here

Help is very much appreciated!

Edit: the crash dump is this one:

0 投票する
2 に答える
8541 参照

android - Android TextureView / 描画 / 描画のパフォーマンス

TextureViewAndroidでお絵かきアプリを作ろうとしています。最大 4096x4096 ピクセルの描画面をサポートしたいと考えています。これは、適切なクアッド コア CPU と 2GB メモリを搭載した Google Nexus 7 2013 である最小ターゲット デバイス (テストに使用) には妥当と思われます。

私の要件の 1 つは、ビューをズームイン、ズームアウト、およびパンできるビュー内に配置する必要があることです。これはすべて、私が作成したカスタム コードです (iOS の UIScrollView を考えてください)。

私はTextureViewOnDraw で通常のビュー (ではない) を使用しようとしましたが、パフォーマンスはまったくひどいものでした - 1 秒あたり 1 フレーム未満でした。これはInvalidate(rect)、変更された rect だけで呼び出しても発生しました。ビューのハードウェア アクセラレーションをオフにしようとしましたが、4096x4096 はソフトウェアには大きすぎるため、何もレンダリングされませんでした。

その後、使用してみTextureViewましたが、パフォーマンスは少し良くなりました.毎秒約5〜10フレームです(それでもひどいですが、より良いです). ユーザーはビットマップに描画し、後でバックグラウンド スレッドを使用してテクスチャに描画します。私は Xamarin を使用していますが、コードが Java の人々にとって意味のあるものであることを願っています。

rect の代わりに null を渡すように lockCanvas を変更すると、パフォーマンスは 60 fps で優れていますが、コンテンツがちらついてTextureView破損し、残念です。単純に OpenGL フレーム バッファを使用するか、その下にテクスチャをレンダリングするか、少なくともコンテンツを保持するオプションがあると考えていました。

Android の生の OpenGL ですべてを実行する以外に、ドローコール間で保持されるサーフェス上で高性能の描画とペイントを行うオプションはありますか?

0 投票する
1 に答える
1192 参照

android - 複数のテクスチャ ビューを制御する Android スレッドで奇妙なちらつきが発生する

単一のスレッドを使用して、キャンバスのロック/ロック解除を使用して UI スレッドから 3 つの個別の TextureView をレンダリングしようとしています。観測された問題は、描画されている各テクスチャ ビューの一貫したちらつきであり、ちらつきは異なる TextureView のフレームで構成されています。たとえば、フレーム A、B、C の順に描画します。フレーム C は問題なく表示されますが、フレーム A と B はフレーム C のインスタンスでときどきちらつき、フレーム A はフレーム B のインスタンスでときどきちらつきます。

Android Core Graphics について説明したドキュメントを読み、Android のフレーム バッファリング システムがどのように機能するかをかなりよく理解しています。一言で言えば、私の疑いは、lockCanvas/unlockCanvasAndPost 呼び出しを連続して実行するのが速すぎて、フレームバッファが要求を完了できず、代わりに前の (間違った) フレームを単に描画することです。

この問題を解決するために、いくつかのことを試しました。キャンバスの呼び出しを続行する前に Choreographer を使用して VSYNC を待機しようとすると、問題は解決しませんでしたが、予想どおりフレーム レートが低下しました。また、別の render loop sans sleep コマンドも試しましたが、観測された現象に違いはありませんでした。

本質的に、私はこの問題に取り組む方法についてのアイデアが不足しており、外部からの意見を得ることを望んでいました. 事前に感謝します。コード スニペットは以下のとおりです。

メイン レンダリング ループ:

MyTextureView doRender() メソッド:

0 投票する
3 に答える
17999 参照

android - Android SDK - camera2 - TextureView に四角形を描画します

Android 開発は初めてで、camera2 API で良い例を見つけるのが難しいと感じています。

私はほとんどの問題をゆっくりと進めていますが、これについては行き詰まっています。デフォルトのカメラでは、画面をタッチしてフォーカスを合わせると、フォーカス エリアの長方形が一瞬表示されます。私は似たようなことをしたいです(または、この場合、まったく同じことから始めて、それを理解できるようにします)。

カメラのプレビューとして使用されているときにテクスチャビューに描画できない場所(SDKドキュメントのTextureViewページだと思います)を読みました.lockメソッドを呼び出すと、キャンバスではなくnullが返されます。

私はこれをオンラインで見つけました: https ://github.com/commonsguy/vidtry/ しかし、私はそれを動作させることができません。メインビューをドローアブルビューにキャストできない、またはその逆というエラーが発生します-または、ドローアブルビューが上にあり、画面が黒くなります-または、下にあり、タッチイベントに応答しません(強制しようとしています)上記のビューからの performClick は、クラッシュを引き起こします。)

立ち往生!イベント位置に長方形を数秒間描画する方法の説明や例を誰か教えてもらえますか?

ありがとう!

0 投票する
2 に答える
576 参照

android - クラスTextureViewをAndroid Honeycombに移植することは可能ですか

1 つの画面で複数のビデオを同時に再生する機能を実装する予定であり、ビデオの再生中にビデオ ビューをスクロールできます。

親ビューとして機能する ListView にビデオ ビューを追加します。SurfaceView は Android ビュー階層によって再描画できないため、SurfaceView を使用してビデオ ストリームをレンダリングしないでください。SurfaceView をスクロールするのは悪い考えです。

幸いなことに、API レベル 14 から TextureView が追加されました。これは SurfaceView の置き換えでした。だから私は自分の計画を達成するためにそれを使うことができます。

しかし、TextureView は API レベル 14 以上でしか利用できません。実際、API レベル 11 以上のプラットフォームでこの機能を実装するよう求められました。

私は、API レベル 11 以降に Android に追加された SurfaceTexture に注意を払い始めました。SurfaceTexture を使用して、カメラ画像ストリームまたはビデオ デコード ストリームを OpenGL テクスチャに配置できます。また、Android ビュー階層は、代わりに opengl によって描画されることも知っています。 API レベル 11 以降の skia。

したがって、SurfaceTexture を使用して、ビデオ ストリームを通常の Android ビューにレンダリングできるかどうか疑問に思っています。

つまり、API レベル 14 以降に追加された TextureView の位置を置き換えるために、API レベル 11-13 用にカスタマイズされたウィジェットを実装できますか?

私は android.view.TextureView のソース コードを調べましたが、それほど複雑ではありません。依存クラスは次のとおりです。

また、4 つのネイティブ API があります。

クラス TextureView を Android api レベル 11-13 に移植することは可能ですか?

誰が私にアドバイスをくれますか?