package com.edufound.mobile.xxt.activity; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.FrameLayout; import com.edufound.mobile.xxt.R; import com.edufound.mobile.xxt.base.BaseActivity; import com.edufound.mobile.xxt.ijkplayer.media.IjkVideoView; import com.edufound.mobile.xxt.util.ContextUtil; import com.edufound.mobile.xxt.video.VideoAView; import com.edufound.mobile.xxt.video.VideoPersenter; import tv.danmaku.ijk.media.player.IMediaPlayer; import tv.danmaku.ijk.media.player.IjkMediaPlayer; public class IJKPlayerActivity extends BaseActivity implements VideoAView { VideoPersenter mPersenter; IjkVideoView mVideoView; FrameLayout mFrameLayout; IJKPlayerActivity mActivity; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { setContentView(R.layout.activity_player); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // init player IjkMediaPlayer.loadLibrariesOnce(null); IjkMediaPlayer.native_profileBegin("libijkplayer.so"); mPersenter = new VideoPersenter(this); super.onCreate(savedInstanceState); } @Override protected void initVew() { super.initVew(); mFrameLayout = findViewById(R.id.player_frame); mVideoView = new IjkVideoView(ContextUtil.getContext()); mVideoView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); mVideoView.setOnCompletionListener(new IMediaPlayer.OnCompletionListener() { @Override public void onCompletion(IMediaPlayer iMediaPlayer) { mPersenter.onCompletion(); } }); mVideoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() { @Override public void onPrepared(IMediaPlayer iMediaPlayer) { mPersenter.onPrepared(); } }); mVideoView.setOnInfoListener(new IMediaPlayer.OnInfoListener() { @Override public boolean onInfo(IMediaPlayer iMediaPlayer, int what, int extra) { mPersenter.onInfo(what, extra); return true; } }); mVideoView.setOnErrorListener(new IMediaPlayer.OnErrorListener() { @Override public boolean onError(IMediaPlayer iMediaPlayer, int what, int extra) { return mPersenter.onError(what, extra); } }); mFrameLayout.addView(mVideoView); mFrameLayout.addView(mPersenter.getPlayerController()); mPersenter.loadVideo(getIntent()); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return mPersenter.onKeyDown(keyCode, event); } @Override public boolean onKeyUp(int keyCode, KeyEvent event) { return mPersenter.onKeyUp(keyCode, event); } @Override protected void onDestroy() { super.onDestroy(); activityFinish(); } @Override public void setVideoUri(Uri uri) { mVideoView.setVideoURI(uri); } @Override public void start() { mVideoView.start(); } @Override public void pause() { mVideoView.pause(); } @Override public void stop() { mVideoView.stopPlayback(); } @Override public void releaseVideo() { mVideoView.stopPlayback(); mVideoView.resume(); mVideoView.release(true); } @Override public void seek(int seek) { mVideoView.seekTo(seek); } @Override public boolean isPlaying() { return mVideoView.isPlaying(); } @Override public int getDuration() { return mVideoView.getDuration(); } @Override public int getCurrent() { return mVideoView.getCurrentPosition(); } @Override public void activityFinish() { if (mVideoView != null) { mVideoView.stopPlayback(); } mVideoView = null; mPersenter.destroy(); finish(); // System.exit(0); } @Override public void showData(String text) { } @Override public void DisconnNetWork() { super.DisconnNetWork(); if (getLocalPckClas().equals(getTopActivity(this))) { mPersenter.onDisConnNetWork(); } } @Override public boolean onTouchEvent(MotionEvent event) { return mPersenter.onTouchEvent(event); } @Override public void ConnNeWork() { super.ConnNeWork(); if (getLocalPckClas().equals(getTopActivity(this))) { mPersenter.onConnNetWork(); } } @Override public Activity getActivity() { if (mActivity == null) { mActivity = this; } return mActivity; } @Override protected void onSaveInstanceState(Bundle outState) { // super.onSaveInstanceState(outState); mPersenter.onSaveInstanceState(outState); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { // super.onRestoreInstanceState(savedInstanceState); mPersenter.onRestoreInstanceState(savedInstanceState); } @Override protected void onResume() { super.onResume(); mPersenter.onResume(); } }