たまにはコーディングも…ということで、Eclipse上に配置した動画ファイル(.3gp)をAndroidエミュレータで簡単に再生する方法をメモ程度に書いときたいと思います。
まず動画ファイルをEclipse上に配置します。配置場所は下記の画像を参照してね!
rawフォルダがない場合はresフォルダの下に来るように新しく作成しましょう。
動画ファイルをrawファイルにドラッグアンドドロップすれば配置することができます。
|
動画の配置場所 |
次にlayoutフォルダ内にあるmain.xml(レイアウトファイル)を設定します。
main.xml
―――――――――――――――――――――――――――――――
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
< !-- 動画を再生するために使用する -- >
<VideoView
android:id="@+id/videoView1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"></VideoView>
</LinearLayout>
―――――――――――――――――――――――――――――――
srcフォルダ内にあるVideoViewTestActivity.javaを設定します。
res/raw/sample.3gpの動画を再生するにはsetVideoPathの引数に【android.resource://[アプリのパッケージ名]/[ID]】を指定する。
アプリのパッケージ名は今回の場合:
jp.ainokami777.videoviewtest
IDは今回の場合:R.raw.sample
またsetMediaControllerを用いて動画のコントローラを配置することができる。
VideoViewTestActivity.java
―――――――――――――――――――――――――――――――
package jp.ainokami777.videoviewtest;
import android.app.Activity;
import android.os.Bundle;
import android.widget.VideoView; // 動画再生(VideView)のために
import android.widget.MediaController; // コントローラーを配置するために
public class VideoViewTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// findViewByIdメソッドはmain.xml(レイアウトファイル)に指定されたコンポーネントをid指定で取得する
VideoView video = (VideoView)findViewById(R.id.videoView1);
// 動画を再生するパスを指定する
// setVideoPathの引数には【android.resource://[アプリのパッケージ名]/[ID]】の形で指定する
video.setVideoPath("android.resource://jp.ainokami777.videoviewtest/"+R.raw.sample);
// MediaControllerクラスを用いて動画のコントローラーを配置する
video.setMediaController(new MediaController(this));
}
}
―――――――――――――――――――――――――――――――
実行すると
動画が自動的に再生されます。
|
動画が再生される |
また、動画をクリックするとコントローラーが表示されるはずです。
|
MediaControllerクラスの動画コントローラー |
以上、簡単に動画を再生する方法の紹介でした。