【Android】ijkplayer集成使用
https://www.jianshu.com/p/9e60cbd4db15
Ijkplayer rtsp 封装
package xxxxx import android.content.Context; import android.graphics.Color; import android.media.AudioManager; import android.net.Uri; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.Gravity; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.widget.FrameLayout; import java.util.Map; import tv.danmaku.ijk.media.player.IMediaPlayer; import tv.danmaku.ijk.media.player.IjkMediaPlayer; public class VideoPlayer extends FrameLayout { /** * 由ijkplayer提供,用于播放视频,需要给他传入一个surfaceView */ private IMediaPlayer mMediaPlayer = null; /** * 视频文件地址 */ private String mPath ; /** * 视频请求header */ private Map<String,String> mHeader; private SurfaceView mSurfaceView; private Context mContext; private boolean mEnableMediaCodec=true; IjkMediaPlayer ijkMediaPlayer = new IjkMediaPlayer(); private VideoListener mListener; private AudioManager mAudioManager; private AudioFocusHelper mAudioFocusHelper; public VideoPlayer(@NonNull Context context) { this(context, null); } public VideoPlayer(@NonNull Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public VideoPlayer(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context); } //初始化 private void init(Context context) { mContext = context; mSurfaceView = new SurfaceView(mContext); setBackgroundColor(Color.BLACK); createSurfaceView(); mAudioManager = (AudioManager)mContext.getApplicationContext().getSystemService(Context.AUDIO_SERVICE); mAudioFocusHelper = new AudioFocusHelper(); } //创建surfaceView private void createSurfaceView() { mSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { } @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { if (mMediaPlayer != null) { mMediaPlayer.setDisplay(surfaceHolder); } } @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { } }); LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT , LayoutParams.MATCH_PARENT, Gravity.CENTER); // mSurfaceView.setLayoutParams(layoutParams); addView(mSurfaceView,0,layoutParams)