[Android] VideoView:動画を再生する

動画を表示させるためにはVideoViewクラスか<VideoView>
タグを使います。ここでは動画を表示し再生させる方法について説明します。
広 告
目次
前提条件
動作確認端末
- Google Nexus 7 – 5.1.1 – API22(実機)
1. VideoViewの概要
動画を再生させるための動画プレイヤーを作成ためにはVideoViewクラスか<Video>
タグを使います。SurfaceViewクラスを継承しているため、SurfaceViewクラスのメソッドを使用すうことが可能です。
レイアウトXMLで<Video>
タグを使って動画プレイヤーを配置する例は以下のとおりです。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <VideoView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/video" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" />
上記のレイアウトXMLで宣言した<Video>
タグをJava側のコードで読み込むためには以下のコードを実行します。
MainActivity.java
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.VideoView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final VideoView videoView = (VideoView) findViewById(R.id.video); } }
2. 動画を内部ストレージから読み込む
端末内に保存されている動画ファイルを読み込むためには、VideoView#setVideoPath(String)を使用します。以下が実装例になります。
動画を内部ストレージから読み込む;
videoView.setVideoPath("/xxxx/xxxxx/xxxx/filename.xxx");
引数には動画ファイルのフルパスを設定します。
実行すると以下のように表示されます。

3. 動画をインターネットから読み込む
まずインターネット接続するためには、アプリに対して「ネットワークへのフルアクセス」の許可を与える必要があります。
「ネットワークへのフルアクセス」の許可を与えるためには、マニフェストファイルの
<manifest>
タグ配下に以下のパーミッションを1行を追加します。
src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
インターネット上の動画ファイルを読み込むためには、VideoView#setVideoURI(Uri)を使用します。以下が実装例になります。
動画をインターネットから読み込む;
videoView.setVideoURI(Uri.parse("http://xxxx.xxxx.xxxx.xxxx:xxxx/xxxx.mp4"));
引数には動画のURLを設定します。
実行すると以下のように表示されます。

4. 動画を再生・停止する
動画を再生させるためにはVideoView#start()を使用します。
動画を再生する
videoView.start();
動画を停止させるためにはVideoView#stopPlayback()を使用します。
動画を停止する
videoView.stopPlayback();
5. 動画を一時停止・再開する
動画を一時停止させるためにはVideoView#pause()を使用し、再生再開させるためにはVideoView#start()を使用します。
以下が実装例になります。
動画を一時停止・再開する
if (videoView.isPlaying()) { // 動画を一時停止する videoView.pause(); } else { // 動画を再生再開する videoView.start(); }
上記では一時停止させる前にVideoView#isPlaying()で動画が再生中かどうかを判定しています。
6. 参考URL
VideoView | Android Developers
http://developer.android.com/intl/ja/reference/android/widget/VideoView.html