IJKPlayerActivity.java 5.6 KB

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