Ijkplayer rtsp 遇到问题

【Android】ijkplayer集成使用https://www.jianshu.com/p/9e60cbd4db15Ijkplayer rtsp 封装package xxxxximport android.content.Context;import android.graphics.Color;import android.media.AudioManager;import android.net.Uri;import android.support.annotation..
摘要由CSDN通过智能技术生成

【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)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幽灵大神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值