0

私は RelativeLayout を備えた Android アプリを持っています。これに複数の VideoView をプログラムで追加し、そのすべてを同時に再生しています。VideoViews はドラッグで移動でき、オーバーラップするように移動できます。

問題は、実行時にそれらの z オーダーを変更する方法が見つからないことです。.bringToFront() は、タッチ イベントを受け取るためにビューを前面に移動しますが、実際のビデオの順序は変わりません。

.removeChild() で videoView を削除して再追加しようとしましたが、ビデオが停止してリセットされます。

ビデオの z オーダーを変更する方法はありますか? ビデオを停止してリセットせずに、広告を削除してビューを再追加するなど、「ハッキーな」方法も機能します。

ありがとう

PS ストリーミング ビデオなので、ビデオを同じ位置に再起動しても機能せず、遅延が大きすぎます。

編集: 人々は複数の VideoViews が機能しないことを示唆していますが、少なくとも私の Nexus S、ICS 4.0.3 では、重複していてもうまく機能します。

編集 2: 実際には、2 番目のビデオがちらつくことがありますが、この目的には問題ありません。3番目と4番目のビデオはちらつきません。これは少し奇妙です

4

2 に答える 2

1

このドキュメントによると、SurfaceView の Z オーダーはウィンドウにアタッチされる前に決定され、一度アタッチされると順序は変更されません。VideoViewもSurfaceViewなので、できないと思います。

于 2013-01-08T08:58:14.140 に答える
0

VideoViews は SurfaceView を使用し、ウィッチはウィンドウで Z オーダーされますが、すべての SurfaceView がウィンドウに穴を開けるため、複数の SurfaceView を z オーダーにすることはできません。同じ領域に複数のビデオを追加すると、ビデオが正しく再生されません。ビデオの状態を維持するために、ビデオを画面外に変換していました。Google Play で EcoNews aap を探します。

于 2012-09-26T12:55:31.820 に答える