AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【Android】アプリ内で動画を再生する方法(Java)

develop.hateblo.jp

前に書いた、iOSでアプリ内で動画を再生する方法のAndroid版。

ネットで調べた方法だと、動かないものが結構あったので、意外と時間がかかった。


Android】アプリ内で動画を再生する方法(Java

流れとしては、元のActivityから遷移したタイミングで動画を再生して、再生完了時点でActivityを終了させて元のActivityに戻してます。
動画の再生完了を検知したい場合は「MediaPlayer.OnCompletionListener()」を設定しておく必要があります。

【Android】アプリ内で動画を再生する方法(Java)
再生する動画は、「res」>「raw」フォルダに入れておきます。


VideoActivity.java

import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.MediaController;
import android.widget.VideoView;

public class VideoActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video);
        final VideoView videoView = (VideoView) findViewById(R.id.video);
        MediaController mediaController = new MediaController(this);
        Uri videopath = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.anime);
        videoView.setVideoPath(String.valueOf(videopath));
        videoView.requestFocus();
        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener(){
            @Override
            public void onCompletion(MediaPlayer mp) {
                finish();
            }
        });
        videoView.start();
    }

}

activity_video.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".VideoActivity"
    android:background="@android:color/black">
    <VideoView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/video"
        android:layout_gravity="center"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</android.support.design.widget.CoordinatorLayout>


参考:
developer.android.com
developer.android.com
developer.android.com
developer.android.com