2

videoview別のビデオ ビューの上で再生しようとしています。最初のビデオ ビューは一時停止され、2 番目のビデオ ビューは再生中です。動作しているように見えますが、画面に 2 番目のビデオが表示されません (ただし、音声が聞こえ、通常は一番上に表示されるコントロールが表示されます)。これはある種の順序の問題だと思います。何かご意見は。ちなみに、メインのビデオ ビューの上に他のビューを表示し、ビデオを背景に表示しても問題ありません。

4

5 に答える 5

3

それは機能しません-VideoViewは、通常のビューに穴を開けてディスプレイピクセル(または、Android用語では「表面」)に直接アクセスできるという意味で特別です-VideoViewはSurfaceViewのサブクラスです)。2 つの SurfaceView を互いに重ねることはできません。最初にピクセルを取得したもの (Surface) がそれを「所有」します。(SurfaceHolder.Callback.surfaceCreated() / surfaceDestroyed() を参照)

フレームワークが Surface の上に通常のビューの表示ビットを構成するため、SurfaceViewの上にある他のビューは機能します。構成するものが何もないため、別の VideoView (つまり、SurfaceView) でそれを行うことはできません。

于 2011-02-09T21:46:19.407 に答える
1

<VideoView android:id="@+id/videoView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"/>
<VideoView android:id="@+id/videoView2" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"/>

videoView2 の再生が開始されると、videoView1 の setvisibilty が非表示になります。その後、必要なときに表示することができます。

于 2011-03-01T11:39:17.417 に答える
1

Thread両方のビデオを制御するために使用します

于 2012-05-28T11:04:10.523 に答える
0

このように、ビデオビュー b の上にビデオビュー a を追加できます。

     parentview.removeview(a);
    parentview.removviewe(b);
    parentview.addview(a);
    parentview.addview(b);
parentview.invalidate();

ティの仕事です。それが役立つことを願っています。

于 2015-03-13T09:18:32.477 に答える
0

現時点でこれが役立つかどうかはわかりませんが、あなたが望むものに似たものを手に入れることができました...

SurfaceView の上に VideoView をネストする必要がありました。100% 重複しない限り、機能します。(つまり、私の surfaceview は画面全体で、videoview は画面のほんの一部です)

問題は、SurfaceView を構成できないため、最初にピクセルを取得したものが表示されるということです。直感的に、優先度の高いビューを XML 内の重要度の低いビューの後に Z オーダーすることができます。大きい方を重ねます。

これにより、小さい方 (私の場合はプレビュー ビュー) が前述の X * Y ピクセルを取得し、「背景」のサーフェスビュー (XML に従ってその上にあると想定されている) が残りを占めるという動作が発生します。より小さいサーフェスは無視されます。

これら 2 つのビューでストリームを再生するだけでよく、これら 2 つのコンポーネントによって生成されたクリック/イベントには反応しないため、これら 2 つのイベントの処理についてはよくわかりませんが、これに従えば、ルート - 大きなビューは、小さなビュー領域で行われたすべてのクリックをインターセプトします (XML によると上部にあるため)。そのため、作成時にプログラムで上部に移動する必要がある場合があります。

それが役に立てば幸い。

編集:ただし...一度だけ機能するようです。本当に進行中の作業です。アクティビティから戻ると、より大きなビューがすべてを主張するのを防ぐためにできることは何もありません:/

于 2012-01-09T18:06:42.210 に答える