前に書いた、iOSでアプリ内で動画を再生する方法のAndroid版。
ネットで調べた方法だと、動かないものが結構あったので、意外と時間がかかった。
【Android】アプリ内で動画を再生する方法(Java)
流れとしては、元のActivityから遷移したタイミングで動画を再生して、再生完了時点でActivityを終了させて元のActivityに戻してます。
動画の再生完了を検知したい場合は「MediaPlayer.OnCompletionListener()」を設定しておく必要があります。
再生する動画は、「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