package cn.mutils.app.ui.video; import android.content.Context; import android.net.Uri; import android.os.Bundle; import android.util.AttributeSet; import android.widget.MediaController; import android.widget.RelativeLayout; import android.widget.VideoView; import cn.mutils.app.io.Extra; import cn.mutils.app.ui.AppActivity; import cn.mutils.app.ui.Viewer; @SuppressWarnings("serial") public class VideoActivity extends AppActivity { public static class VideoExtra extends Extra { protected String mUrl; protected boolean mAutoPlay = true; public String getUrl() { return mUrl; } public void setUrl(String url) { mUrl = url; } public boolean isAutoPlay() { return mAutoPlay; } public void setAutoPlay(boolean autoPlay) { mAutoPlay = autoPlay; } } protected VideoExtra mExtra; protected VideoContainer mVideoContainer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mVideoContainer = new VideoContainer(this); this.setContentView(mVideoContainer); VideoView videoView = mVideoContainer.getVideoView(); mExtra = new VideoExtra(); if (mExtra.getFrom(getIntent())) { videoView.setVideoURI(Uri.parse(mExtra.mUrl)); if (mExtra.mAutoPlay) { videoView.start(); } } videoView.requestFocus(); } static class VideoContainer extends Viewer { protected VideoView mVideoView; protected MediaController mMediaController; public VideoContainer(Context context) { super(context); } protected void init(Context context, AttributeSet attrs) { mMediaController = new MediaController(context); RelativeLayout.LayoutParams params = new LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); params.addRule(RelativeLayout.CENTER_IN_PARENT); mVideoView = new VideoView(context); mVideoView.setMediaController(mMediaController); mVideoView.setLayoutParams(params); this.setContentView(mVideoView); this.setBackgroundColor(0xFF000000); super.init(context, attrs); } public VideoView getVideoView() { return mVideoView; } } }