先说点废话, - -!最近懒癌犯了,都俩月没写东西了,不过确实项目面临上线,时间也有点紧,经常加班,而且!!在这个紧要关头,需求要加一个简单的直播模块,不用太华丽的那种,只要能实现:一边播,另一边能看就行。最终决定:用阿里云的。
于是就去官网上下载了Demo以及SDK等瞅了瞅。传送门:https://help.aliyun.com/document_detail/94843.html?spm=a2c4g.11186623.6.1019.4a61334fC18RJV
说到直播,因为以前也没接触过,只知道点皮毛,据我理解就是一个推拉流的过程。一方进行直播推流,另一方进行拉流观看。在项目中整合了直播模块后,现在看来貌似理解的还算正确。 - -!
官网中的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() {@Overridepublic 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格式的,只能借助阿里云提供的播放器来观看直播。传送门:https://help.aliyun.com/document_detail/124711.html?spm=a2c4g.11186623.6.1171.3e306412xzWZ0P
首先,需要导入相应的sdk,下载官网demo后,里面libs文件夹下有个AliyunPlayer.arr,我们同样放到我们自己项目的libs里,然后

//配合加载aar资源库使用
repositories {flatDir {dirs 'libs'}
}

最后dependencies中:

compile(name: 'AliyunPlayer', ext: 'aar')

里面的核心类,当然就是PlayerActivity啦!
其实核心代码也就这一句 - -!

mPlayer.prepareAndPlay("LiveUrl");//设置播放地址

这个LiveUrl就是后台返给你的观看直播的地址至于观看直播的界面效果可以随便修改自定义成你们自己需要的,具体参考Demo,Over~~~

PS:由于本人很久没有开发原生Android啦!所以SDK相关的使用方法可能都已经变更,请去官网(上面的链接我已经更新成最新的SDK地址了,不保证一直有效)参考最新的使用方法~

使用阿里云实现简单的直播相关推荐

  1. 助力APP尽情“撒币”!阿里云正式上线移动直播问答解决方案

    摘要: 2018年伊始,互联网圈就刮起了一阵"大佬狂撒币,网友喜答题"的热潮,为了助力企业紧握风口,阿里云推出一站式移动直播问答解决方案.通过稳定高性能的计算基础设施和可扩展的直播 ...

  2. Android开发-在Android里接入阿里云推流SDK实现直播推流的功能

    前 言 如今,在国内移动互联网发展了几年的时间,移动开发技术也相对的成熟,在咱们日常使用的手机App中也少不了直播的功能,不管是娱乐类.游戏类.体育类还是教育类等的App都会有直播的功能,可以说直播的 ...

  3. 阿里云oss简单的上传下载删除(java)

    阿里云oss上传和下载. 配置maven <!-- https://mvnrepository.com/artifact/com.aliyun.oss/aliyun-sdk-oss --> ...

  4. 基于阿里云实现简单的语音识别功能

    前面了解过纯js实现了录音功能,并也自学了一些关于前端二进制的内容,现在终于可以利用阿里云来实现下智能语音识别的功能了. 一.准备 首先,先登录阿里云官网查看下官方文档(一句话识别),提供了java, ...

  5. 阿里云最简单的认证是什么?考试费用是多少?

    内卷已经成为了现代社会的常态,尤其是对于东亚几国来说,产业结构低下,社会福利尚未建设完全,每个国家的社会压力都很大,普通人家 孩子挤破了头,想要考上好的大学,在毕业后获得一份好工作.然而对于普通家庭的 ...

  6. uniapp 小程序开发,实现图片直传阿里云的简单方法

    借用uniapp官方的第三方组件uni-file-picker和插件市场的已经封装好的插件yushijie-ossutil就能简单实现 下载链接:阿里云oss文件直传-无需后台签名 - DCloud ...

  7. 使用阿里云来搭建视频直播服务

    直播现在已成为大多数年轻人娱乐的一种方式,而现在,网红也成为耳熟能详的一个职业代名词,网络主播,也成为年轻人赚钱的一种渠道,现在,你是否也想试着自己来做一个直播平台小项目呢?那就跟我一起来试着操作一下 ...

  8. 微信头像下载并上传到阿里云OSS,PHP文件上传到阿里云OSS简单代码(OSS文件上传,微信头像下载,CURL下载文件,微信头像链接过期)

    (就这么个小事,有多少公司多少项目没做到!!) 微信公众号项目,后端获取到授权用户的微信头像后,要自行下载保存,不下载的话,微信返回的头像链接会在一段时间后过期,无法访问! 下面是我写的两个简单实用方 ...

  9. 阿里云最简单的认证是什么?

    阿里云ACA认证简介 阿里云的产品众多,有三个等级,是一层一层递进的,对于刚刚接触云计算.大数据.物联网等技术的人来说,考最基础的认证就是最合适的,内容比较简单,考试形势单一,考试形式简单,能帮助考生 ...

最新文章

  1. 通过反射创建动态代理对象(三)
  2. matlab作业5答案,《matlab作业题答案》.doc
  3. 三星Galaxy Note 10最新消息:将取消所有实体按键
  4. C#调用open cv函数
  5. 日请求从百万到八亿的技术历程
  6. android java include_Android开发:javah的使用方法
  7. vSphere Client报错:VMRC 控制台的连接已断开。正在尝试重新连接
  8. 【历史上的今天】5 月 10 日:淘宝网上线;机器感知之父出生;英国首批计算机投入运行
  9. 给信号添加指定信噪比的带限白噪声
  10. FireFox精彩电视广告欣赏
  11. 系统操作手册_辽宁高考志愿填报系统2019操作手册(考生版)
  12. 身为一名Java程序员,在面试的时候常常被问到的,下面我总结一些常常别问到的问题。
  13. Node.js基础(二)-- 模块化、npm与包
  14. group by和order by的用法和区别
  15. 账单php,php 处理微信账单
  16. React Native桥接器初探
  17. python数字小游戏
  18. 基于requests库和lxml库爬取优信二手车
  19. 3.1 有界线性算子与有界线性算子空间
  20. win11下载配置CIC Flowmeter环境并提取流量特征

热门文章

  1. 计算机维护服务蓝图,体验|如何通过服务设计建立品牌感知与品牌认同
  2. 现身说法,如何给上司送礼物
  3. 【华人学者风采】倪冰冰 上海交通大学
  4. 学校计算机专业春联大全带横批,关于学校的春联带横批.doc
  5. pytorch 统计模型参数个数
  6. 2022年4月23日美团笔试
  7. 跟朋友合伙创业股权怎么分配
  8. 什么是ISO?ISO增值的作用
  9. C语言情人节玫瑰花代码
  10. 彭佳慧 - 走在红毯那一天