ページ 11

SurfaceViewでVideoViewを扱う

Posted: 2012年10月04日(木) 05:43
by kazuoni
お久しぶりです。
qさんがAndroidの館をやっているのを最近思いだし、一度やめてしまったAndroid開発を再開しました。

現在の問題はタイトルのとおり、SurfaceViewでVideoViewをどう扱うかです。
根本はAndroidの館をベースにして開発を行っています。
毎ループCanvasに描写を行うのでtext, imageに対しては非常に有効であるのですが、
Canvasの一部にワイプのように動画(VideoView型を想定)をいざ表示しようと思っても、どのようにやればいいのかわかりません。
(Canvasにももちろん他の描写は行う)

将来的に動画を動的に動かしながら再生を行いたいので、複数のlayoutを切り替えるわけにはいきません。

このようなことを行う場合にはどのような方法で再現するのがベターなのでしょうか?

開発はandroid os 2.3.3を想定しています。

よろしくお願いいたします。

Re: SurfaceViewでVideoViewを扱う

Posted: 2012年10月04日(木) 17:38
by ISLe
未確認ですが、SurfaceViewとVideoViewをRelativeLayoutの入れ子にしたらVideoViewをSurfaceViewの上に自由に配置できるのではないでしょうか。

layout.xmlがこんな感じになるように(パラメータ等省略)。

コード:

<RelativeLayout>
    <SurfaceView />
    <VideoView />
</RelativeLayout>
後に書いたほうが優先度が高い(表示が上)です。

Re: SurfaceViewでVideoViewを扱う

Posted: 2012年10月06日(土) 01:35
by kazuoni
ISLeさん

返事が遅れてしまい大変申し訳ありませんでした。
また、ご回答ありがとうございました。

確かに仰るとおりでした。

ただVideoViewは用いるのをやめました。
複数の動画を別々のリソースで展開を試みましたが、どうやらできないようです(?)
デコーダの問題やらなんやらがややこしそうだったので、
大本のmediaPlayerで代用しました。

3MB × 2 の再生でFPSは60 -> 30になりましたが・・・

何はともあれ解決いたしました。ありがとうございました。