android直播播放器(集成阿里云基础播放器)

1.播放器初建:

       先在application中需先初始化阿里云的直播播放器   

AliVcMediaPlayer.init(getApplicationContext());

     在activity中实列化播放器,需要先实例化一个surfacceview

mPlayer = new AliVcMediaPlayer(this, mSurfaceView);
    if(mPlayer != null){
    mPlayer.prepareAndPlay(mUrl);}
    mPlayer.play();
    mSurfaceView.setOnClickListener(new mClickListener());
}

2.播放器全屏:

       播放器全屏的设置涉及到android的横竖屏的问题,即在进入全屏模式的时候需要android的屏幕为横屏模式,在同一个activity中进行横竖屏转换的时候会进行activity的重载,如果是做视频播放器的话需要记录当前播放进度。也可通过在activity的节点加入

android:configChanges="keyboardHidden|orientation|screenSize"
不让activity重载

       接下来就是一些隐藏状态栏,导航的栏的事。

       我在全屏中设置了一个rativelayout的surfaceview的父布局,通过设置父布局,surfaceview的属性为much_parent来控制播放器的大小布局。

       设置rativelayout大小的方法为:

       RelativeLayout ss = (RelativeLayout) findViewById(R.id.rl_1);
       ss.setLayoutParams(new RelativeLayout.LayoutParams(mScreenHeight,mScreenWidth));

      其中在获得手机屏幕大小网上说了很多种方法都没有讲导航栏的高度算进去,不是手机的真是高度,是因为谷歌原来的导航栏和状态栏是不支持定制的,后面出现可定制以后方法比较混乱   然后在17以后出标准的获取手机真实宽度和高度的方法:

Context context = getApplicationContext();
DisplayMetrics dm = new DisplayMetrics();
WindowManager windowMgr = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
windowMgr.getDefaultDisplay().getRealMetrics(dm);
int mScreenHeight = dm.heightPixels;
int mScreenWidth = dm.widthPixels;

3.设置单击事件   出现控制组件

    通过建立一个线程隐藏组件,当点击事件发生以后 ,hander.removeCallbacks(线程)   移除线程  显示组件             然后设置一个延迟启动线程再次隐藏组件  

Handler.postDelayed(线程,延迟时间(毫秒,int))




一: 使用javacv来实现,最终也是用过ffmpeg来进行编码和推流,javacv实现到可以直接接收摄像头的帧数据 需要自己实现的代码只是打开摄像头,写一个SurfaceView进行预览,然后实现PreviewCallback将摄像头每一帧的数据交给javacv即可 javacv地址:https://github.com/bytedeco/javacv demo地址:https://github.com/beautifulSoup/RtmpRecoder/tree/master 二: 使用Android自带的编码工具,可实现硬编码,这里有一个国内大神开源的封装很完善的的库yasea,第一种方法需要实现的Camera采集部分也一起封装好了,进行一些简单配置就可以实现编码推流,并且yasea目前已经直接支持摄像头的热切换,和各种滤镜效果 yasea地址(内置demo):https://github.com/begeekmyfriend/yasea 服务器 流媒体服务器我用的是srs,项目地址:https://github.com/ossrs/srs 关于srs的编译、配置、部署、在官方wiki中已经写的很详细了,并且srs同样是国内开发人员开源的项目,有全中文的文档,看起来很方便 这里有最基本的简单编译部署过程 Android直播实现(二)srs流媒体服务器部署 播放器 android端的播放使用vitamio,还是国内的开源播放器,是不是感觉国内的前辈们越来越屌了^~^! vitamio支持几乎所有常见的的视频格式和流媒体协议 vitamio地址(内置demo):https://github.com/yixia/VitamioBundle 这里使用的是yaesa库,先介绍一下直播实现的流程:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值