2007年12月05日
Android覚え書き・動画ファイル再生
動画ファイルを再生してみた。
音楽ファイルと同様にandroid.media.MediaPlayerを使う。表示領域はSurfaceViewで作っておいてMediaPlayer.setDisplay()で関連づける。Content Providerを使う方法はしばらくできそうもないので直接ファイルを指定する方法にした。
getWindow().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.main);
mMediaPlayer = new MediaPlayer();
try {
mMediaPlayer
.setDataSource("/data/data/net.kazhik.android.secondplayer/video002.3gp");
SurfaceView svPlay = (SurfaceView) findViewById(R.id.play_view);
Surface sPlay = svPlay.getHolder().getSurface();
mMediaPlayer.setDisplay(sPlay);
} catch (IOException e) {
}
SurfaceViewを機能させるためにはActivityが持っているウィンドウを半透明にしなければならないようだ。上のコードの一行目。これがないと音声だけで映像は出ない。サンプルコードのコメントに書かれているのだが、気がつかなくて何時間も悩むことになってしまった。
ソースファイル:SecondPlayer20071205.zip