Android/VideoView/イベント
提供: 初心者エンジニアの簡易メモ
動画プレイヤーサンプル(イベント)
すぐに再生される
import android.media.MediaPlayer; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.VideoView; public class MainActivity extends AppCompatActivity { private VideoView mVideoView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mVideoView = new VideoView(this); FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.gravity = Gravity.CENTER; FrameLayout layout = (FrameLayout)findViewById(R.id.videoLayout); layout.addView(mVideoView, layoutParams); // タッチイベント(タッチしてるときはずっと発行される) mVideoView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent me) { Log.i("video", "onTouch"); return true; } }); // 最後まで再生したらイベント発行 mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { Log.i("video", "onCompletion"); } }); // 再生準備完了したらイベント発行 mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { Log.i("video", "onPrepared"); mVideoView.start(); } }); // エラーイベント mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer media, int what, int extra) { Log.i("video", "onError"); return true; } }); mVideoView.setVideoPath("~.mp4"); mVideoView.start(); } }
res/layout/activity_main.xml
<FrameLayout android:id="@+id/videoLayout" android:layout_width="match_parent" android:layout_height="200dp"></FrameLayout>
参照
VideoView公式:https://developer.android.com/reference/android/widget/VideoView