IJKPlayerActivity.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.xunao.effectdemo.activity;
  2. import android.app.Activity;
  3. import android.net.Uri;
  4. import android.os.Bundle;
  5. import android.view.SurfaceHolder;
  6. import android.view.SurfaceView;
  7. import androidx.annotation.Nullable;
  8. import com.xunao.effectdemo.R;
  9. import java.io.IOException;
  10. import tv.danmaku.ijk.media.player.IjkMediaPlayer;
  11. /**
  12. * author : 程中强
  13. * e-mail : 740479946@qq.com
  14. * date : 2022/9/1314:34
  15. * desc :
  16. * version: 1.0
  17. */
  18. public class IJKPlayerActivity extends Activity {
  19. private SurfaceView showView;
  20. private IjkMediaPlayer ijkMediaPlayer;
  21. @Override
  22. protected void onCreate(@Nullable Bundle savedInstanceState) {
  23. super.onCreate(savedInstanceState);
  24. setContentView(R.layout.activity_ijkplay);
  25. showView = findViewById(R.id.surfaceView);
  26. //创建IjkPlayer对象
  27. ijkMediaPlayer = new IjkMediaPlayer();
  28. //设置Surface创建以及发生变化的回调
  29. showView.getHolder().addCallback(callback);
  30. }
  31. private SurfaceHolder.Callback callback = new SurfaceHolder.Callback() {
  32. @Override
  33. public void surfaceCreated(SurfaceHolder holder) {
  34. }
  35. @Override
  36. public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
  37. //设置显示界面的Holder
  38. ijkMediaPlayer.setDisplay(holder);
  39. try {
  40. //设置播放地址
  41. ijkMediaPlayer.setDataSource(IJKPlayerActivity.this, Uri.parse("http://v3.cztv.com/cztv/vod/2018/06/28/7c45987529ea410dad7c088ba3b53dac/h264_1500k_mp4.mp4"),null);
  42. } catch (IOException e) {
  43. e.printStackTrace();
  44. }
  45. //播放前准备
  46. ijkMediaPlayer.prepareAsync();
  47. //开始播放
  48. ijkMediaPlayer.start();
  49. }
  50. @Override
  51. public void surfaceDestroyed(SurfaceHolder holder) {
  52. }
  53. };
  54. @Override
  55. protected void onDestroy() {
  56. super.onDestroy();
  57. if (ijkMediaPlayer!=null){
  58. ijkMediaPlayer.stop();
  59. }
  60. }
  61. }