IJKPlayerActivity.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.edufound.mobile.xxt.activity;
  2. import android.app.Activity;
  3. import android.net.Uri;
  4. import android.os.Bundle;
  5. import android.support.annotation.Nullable;
  6. import android.view.KeyEvent;
  7. import android.view.MotionEvent;
  8. import android.view.ViewGroup;
  9. import android.view.WindowManager;
  10. import android.widget.FrameLayout;
  11. import com.edufound.mobile.xxt.R;
  12. import com.edufound.mobile.xxt.base.BaseActivity;
  13. import com.edufound.mobile.xxt.ijkplayer.media.IjkVideoView;
  14. import com.edufound.mobile.xxt.util.ContextUtil;
  15. import com.edufound.mobile.xxt.video.VideoAView;
  16. import com.edufound.mobile.xxt.video.VideoPersenter;
  17. import tv.danmaku.ijk.media.player.IMediaPlayer;
  18. import tv.danmaku.ijk.media.player.IjkMediaPlayer;
  19. public class IJKPlayerActivity extends BaseActivity implements VideoAView {
  20. VideoPersenter mPersenter;
  21. IjkVideoView mVideoView;
  22. FrameLayout mFrameLayout;
  23. IJKPlayerActivity mActivity;
  24. @Override
  25. protected void onCreate(@Nullable Bundle savedInstanceState) {
  26. setContentView(R.layout.activity_player);
  27. getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  28. // init player
  29. IjkMediaPlayer.loadLibrariesOnce(null);
  30. IjkMediaPlayer.native_profileBegin("libijkplayer.so");
  31. mPersenter = new VideoPersenter(this);
  32. super.onCreate(savedInstanceState);
  33. }
  34. @Override
  35. protected void initVew() {
  36. super.initVew();
  37. mFrameLayout = findViewById(R.id.player_frame);
  38. mVideoView = new IjkVideoView(ContextUtil.getContext());
  39. mVideoView.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
  40. mVideoView.setOnCompletionListener(new IMediaPlayer.OnCompletionListener() {
  41. @Override
  42. public void onCompletion(IMediaPlayer iMediaPlayer) {
  43. mPersenter.onCompletion();
  44. }
  45. });
  46. mVideoView.setOnPreparedListener(new IMediaPlayer.OnPreparedListener() {
  47. @Override
  48. public void onPrepared(IMediaPlayer iMediaPlayer) {
  49. mPersenter.onPrepared();
  50. }
  51. });
  52. mVideoView.setOnInfoListener(new IMediaPlayer.OnInfoListener() {
  53. @Override
  54. public boolean onInfo(IMediaPlayer iMediaPlayer, int what, int extra) {
  55. mPersenter.onInfo(what, extra);
  56. return true;
  57. }
  58. });
  59. mVideoView.setOnErrorListener(new IMediaPlayer.OnErrorListener() {
  60. @Override
  61. public boolean onError(IMediaPlayer iMediaPlayer, int what, int extra) {
  62. return mPersenter.onError(what, extra);
  63. }
  64. });
  65. mFrameLayout.addView(mVideoView);
  66. mFrameLayout.addView(mPersenter.getPlayerController());
  67. mPersenter.loadVideo(getIntent());
  68. }
  69. @Override
  70. public boolean onKeyDown(int keyCode, KeyEvent event) {
  71. return mPersenter.onKeyDown(keyCode, event);
  72. }
  73. @Override
  74. public boolean onKeyUp(int keyCode, KeyEvent event) {
  75. return mPersenter.onKeyUp(keyCode, event);
  76. }
  77. @Override
  78. protected void onDestroy() {
  79. super.onDestroy();
  80. activityFinish();
  81. }
  82. @Override
  83. public void setVideoUri(Uri uri) {
  84. mVideoView.setVideoURI(uri);
  85. }
  86. @Override
  87. public void start() {
  88. mVideoView.start();
  89. }
  90. @Override
  91. public void pause() {
  92. mVideoView.pause();
  93. }
  94. @Override
  95. public void stop() {
  96. mVideoView.stopPlayback();
  97. }
  98. @Override
  99. public void releaseVideo() {
  100. mVideoView.stopPlayback();
  101. mVideoView.resume();
  102. mVideoView.release(true);
  103. }
  104. @Override
  105. public void seek(int seek) {
  106. mVideoView.seekTo(seek);
  107. }
  108. @Override
  109. public boolean isPlaying() {
  110. return mVideoView.isPlaying();
  111. }
  112. @Override
  113. public int getDuration() {
  114. return mVideoView.getDuration();
  115. }
  116. @Override
  117. public int getCurrent() {
  118. return mVideoView.getCurrentPosition();
  119. }
  120. @Override
  121. public void activityFinish() {
  122. if (mVideoView != null) {
  123. mVideoView.stopPlayback();
  124. }
  125. mVideoView = null;
  126. mPersenter.destroy();
  127. finish();
  128. // System.exit(0);
  129. }
  130. @Override
  131. public void showData(String text) {
  132. }
  133. @Override
  134. public void DisconnNetWork() {
  135. super.DisconnNetWork();
  136. if (getLocalPckClas().equals(getTopActivity(this))) {
  137. mPersenter.onDisConnNetWork();
  138. }
  139. }
  140. @Override
  141. public boolean onTouchEvent(MotionEvent event) {
  142. return mPersenter.onTouchEvent(event);
  143. }
  144. @Override
  145. public void ConnNeWork() {
  146. super.ConnNeWork();
  147. if (getLocalPckClas().equals(getTopActivity(this))) {
  148. mPersenter.onConnNetWork();
  149. }
  150. }
  151. @Override
  152. public Activity getActivity() {
  153. if (mActivity == null) {
  154. mActivity = this;
  155. }
  156. return mActivity;
  157. }
  158. @Override
  159. protected void onSaveInstanceState(Bundle outState) {
  160. // super.onSaveInstanceState(outState);
  161. mPersenter.onSaveInstanceState(outState);
  162. }
  163. @Override
  164. protected void onRestoreInstanceState(Bundle savedInstanceState) {
  165. // super.onRestoreInstanceState(savedInstanceState);
  166. mPersenter.onRestoreInstanceState(savedInstanceState);
  167. }
  168. @Override
  169. protected void onResume() {
  170. super.onResume();
  171. mPersenter.onResume();
  172. }
  173. }