使用阿里云实现简单的直播
来源:互联网 发布:win7重装网络协议 编辑:程序博客网 时间:2024/06/14 05:30
先说点废话, - -!最近懒癌犯了,都特么俩月没写东西了,是不是要废了?不过确实项目面临上线,时间也有点紧,经常加班,而且!!在这个紧要关头,经理说要加一个简单的直播模块,不要太华丽的那种,只要能实现:一边播,另一边能看就行。说:用阿里云的。
于是乎,我就去官网上下载了Demo以及SDK等瞅了瞅。传送门:https://help.aliyun.com/document_detail/45270.html?spm=5176.product29949.6.667.YZNFdd
说到直播,因为以前也没接触过,只知道点皮毛,据我理解就是一个推拉流的过程。一方进行直播推流,另一方进行拉流观看。在项目中整合了直播模块后,现在看来貌似理解的还算正确。 - -!
官网中的Demo也分两个,一个是直播推流的Demo,一个是拉流观看的Demo,需要导入不同的SDK。进入正题:
——————————————————————————————————————————————
推流:首先你需要有一个推流地址,经理告诉我是rtmp格式的,地址格式是这样的:
"rtmp://video-center.alivecdn.com/...
后面省略号就不显示了,总之,这个推流地址由后台来提供,你只要需要生成流推送就ok了。
官方推流Demo中的核心代码:
LiveCameraActivity.RequestBuilder builder = new LiveCameraActivity.RequestBuilder() .bestBitrate(600) .cameraFacing(AlivcMediaFormat.CAMERA_FACING_FRONT) .dx(14).dy(14).site(1) .rtmpUrl("rtmp://video-center.alivecdn.com/...") .videoResolution(AlivcMediaFormat.OUTPUT_RESOLUTION_360P) .portrait(false) .minBitrate(500) .maxBitrate(800) .frameRate(30) .initBitrate(600); LiveCameraActivity.startActivity(this, builder);
这里面的各种参数配置我都是取的定值,Demo里界面是可以自定义的,由于我们项目暂时要求没那么高,我就全取了默认值,Demo里还有个水印图片啥的,我没添加这个参数,因为完全不需要。需要说明的是这个方法,执行之后,虽然打开了直播的页面LiveCameraActivity,但是还并没有开启真正的直播,真正开启直播的核心代码是LiveCameraActivity中的这些:
private final CompoundButton.OnCheckedChangeListener _PushOnCheckedChange = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { try mMediaRecorder.startRecord(pushUrl);//开启直播 } catch (Exception e) { } isRecording = true; } else { mMediaRecorder.stopRecord();//停止直播 isRecording = false; } } };
看过demo的都应该知道,这个页面中有一个按钮控制的开启和关闭直播,过多不解释。上面的这个方法才是真正意义上的控制直播的开启和关闭。到此为止,推流就算完成了。
导入推流SDK的方法简单说一下:下载官网推流的Demo后,会看到里面的libs和jniLibs,libs下有个alive-live-record的jar包,添加自己项目工程libs下,jniLibs下的armeabi-7a文件夹里的so包也添加到自己项目的jniLibs包里,注意:别忘了配置相关权限和application里初始化so包。具体参考官方Demo吧。
拉流:
拉流的过程,说白了,就跟播放一个url的视频一样,首先,观看直播,需要有一个观看的地址,同样,这个地址也是后台返给我们的,我们不用担心,但是我们Android原生的VideoView是播放不了rtmp格式的,只能借助阿里云提供的播放器来观看直播。
首先,需要导入相应的sdk,下载官网demo后,里面libs文件夹下有个AliyunPlayer.arr,我们同样放到我们自己项目的libs里,然后
//配合加载aar资源库使用repositories { flatDir { dirs 'libs' }}
最后dependencies中:
compile(name: 'AliyunPlayer', ext: 'aar')
里面的核心类,当然就是PlayerActivity啦!
其实核心代码也就这一句 - -!
mPlayer.prepareAndPlay("LiveUrl");//设置播放地址
这个LiveUrl就是后台返给你的观看直播的地址~至于观看直播的界面效果可以随便修改自定义成你们自己需要的,具体参考Demo,Over~~~~
- 使用阿里云实现简单的直播
- 阿里云 直播实现
- 阿里云 实现流媒体 直播 demo
- 阿里云 实现流媒体 直播 demo
- 阿里云 实现流媒体 直播 demo
- 在安卓端实现阿里云直播
- 简单的手机直播实现
- 阿里云直播
- 阿里云直播
- 阿里云视频直播
- 阿里云直播
- rtmp视频直播的简单实现
- 使用阿里云来搭建视频直播服务
- 阿里图库的简单使用
- 阿里云sls日志服务的简单监控 php实现
- Ucloud直播云SDK的简单集成
- 直播的简单介绍
- 阿里OSS对象存储的简单使用
- jquery 实现轮播图
- BZOJ 3289 Mato的文件管理
- 南阳理工OJ---ASCII码排序
- POJ 1276 Cash Machine(多重背包)
- Java 泛型详解
- 使用阿里云实现简单的直播
- JS数组二分法查找
- Android第六天之Eclipse问题
- codeforces 455E Convex hull trick
- List 与Set 的一点区别
- Javascript中!!(两个感叹号,双感叹号)的含义
- 带有集成电源的隔离式RS-485通信
- shell学习十--expr及expr和let性能比较
- Android Arcgis(16)、网络图层加载二