我使用的IJK拉流直播播放器

无意间发现有个群主(小路飞)写了一个直播的sdk(可自定义界面) 548545202

下载好sdk先导入项目,至于过程就不过多的描述。

导入完之后在项目里面的build.grable配置下面的信息(里面的版本信息看你的studio的版本而定)

ext {
    compileSdkVersion = 23
    buildToolsVersion = '23.0.3'

    targetSdkVersion = 23
    //主程序版本
    minSdkVersion = 19
    versionCode = 1
    versionName = "1.0.0.01"
    //library版本
    jjdxm_minSdkVersion = 9
    jjdxm_versionCode = 1
    jjdxm_versionName = "1.0.0"
    jjdxm_v4 = 'com.android.support:support-v4:23.3.0'
    jjdxm_v7 = 'com.android.support:appcompat-v7:23.3.0'
}
配置完这个之后应该就不回报错。

接着你就可以使用播放器

public class IJKPlayerLiveActivity extends Activity {
    private LivePlayerInfoBean livePlayerInfoBean;
    public static final String DATA = "live";
        private PlayerView player;
        private Context mContext;
        private View rootView;
//        private String url = "rtmp://203.207.99.19:1935/live/CCTV5";
        private String title = "标题";
        private PowerManager.WakeLock wakeLock;
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //隐藏状态栏
            this.getWindow().setFlags(
                    WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
           /* getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);*/
           getWindow().getDecorView().setSystemUiVisibility(View.INVISIBLE);
            this.mContext = this;
            livePlayerInfoBean = (LivePlayerInfoBean) getIntent().getSerializableExtra(DATA);
            rootView = getLayoutInflater().from(this).inflate(R.layout.simple_player_view_player, null);
            setContentView(rootView);
            player = new PlayerView(this, rootView)
                    .setTitle(title)
                    .setScaleType(PlayStateParams.fitparent)
                    .hideMenu(true)
                    .hideSteam(true)
                    .setForbidDoulbeUp(true)
                    .hideCenterPlayer(true)
                    .hideControlPanl(true)
                    .showThumbnail(new OnShowThumbnailListener() {
                        @Override
                        public void onShowThumbnail(ImageView ivThumbnail) {
                            Glide.with(mContext)
                                    .load("http://"+ SpUtil.getString(getContext(), Constacts.IP_ADDRESS)+":88" +livePlayerInfoBean.getSmallImage())
                                    .placeholder(R.color.cl_default)
                                    .error(R.color.cl_error)
                                    .into(ivThumbnail);
                        }
                    }).setPlaySource(livePlayerInfoBean.getVideo())//播放流地址rtmp
                    .startPlay();
          
        }

        @Override
        protected void onPause() {
            super.onPause();
            if (player != null) {
                player.onPause();
            }
        }

        @Override
        protected void onResume() {
            super.onResume();
            if (player != null) {
                player.onResume();
            }
            if (wakeLock != null) {
                wakeLock.acquire();
            }
        }

        @Override
        protected void onDestroy() {
            super.onDestroy();
            if (player != null) {
                player.onDestroy();
            }
        }

        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            if (player != null) {
                player.onConfigurationChanged(newConfig);
            }
        }

        @Override
        public void onBackPressed() {
            if (player != null && player.onBackPressed()) {
                return;
            }
            super.onBackPressed();
            if (wakeLock != null) {
                wakeLock.release();
            }
        }
    //获取LivePlayerFragment传过来的数据
    private void initData() {
        livePlayerInfoBean = (LivePlayerInfoBean) getIntent().getSerializableExtra(DATA);
        Log.i("7758258",livePlayerInfoBean.getVideo());
    }
}
群主博客更加详细 http://blog.youkuaiyun.com/u014608640/article/details/52607577

 



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值