提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、阿里云视频直播流程
  • 二、录制直播推流步骤
    • 1. 集成说明
      • 通过本地依赖方式集成SDK
      • 通过Maven依赖方式集成SDK
    • 2. 使用说明
      • RTMP推流
      • 推流失败的情况
  • 三、观看直播
  • 总结

前言

最近公司项目里需要接入手机直播功能,因为之前PC直播用的是阿里云,后台服务器域名等都是部署在阿里云上。所以手机直播也选用了阿里云直播SDK。


一、阿里云视频直播流程

阿里云直播文档

  1. 主播通过采集设备采集直播内容后,通过推流SDK推送直播流,视频直播服务通过边缘推流的方式将直播流推送至阿里云直播中心,推送的视频流通过CDN边缘节点进行加速保证上行传输的稳定性。
  2. 视频流推送至阿里云直播中心后,可按需对视频流进行转码、时移、录制、截图等处理。
  3. 处理好的视频流通过CDN内容分发网络,下发至观众的设备中进行播放。移动端的播放设备可以集成阿里云提供的播放器SDK进行开发。
  4. 直播视频除了可以进行转码截图等操作外,还可以进行直播转点播的操作,将录制下来的视频转至点播系统中再进行点播播放和短视频云剪辑。方便直播与短视频内容生产和传播的联动。


此处展商对应着主播。

二、录制直播推流步骤

1. 集成说明

通过本地依赖方式集成SDK

  1. 下载并解压Android端推流SDK。更多信息,请参见推流SDK。
    新建项目,复制推流SDK文件AliLiveSdk.aar和播放器相关文件到App模块下的libs文件夹中。

  2. 修改工程的build.gradle文件,在allprojects的repositories节点中增加flatDir的设置以及阿里Maven地址。

maven {url 'https://maven.aliyun.com/repository/releases'
}
flatDir {dirs 'libs'
}
  1. 修改App中的build.gradle文件。
dependencies {// 添加对libs文件夹中aar文件的依赖implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
}

通过Maven依赖方式集成SDK

  1. 新建项目。
    修改工程的build.gradle文件,在allprojects的repositories节点中增加flatDir的设置以及阿里Maven地址。
maven {url 'https://maven.aliyun.com/repository/releases'
}
flatDir {dirs 'libs'
}
  1. 修改App中的build.gradle文件,在dependencies节点中增加推流SDK、播放器SDK及Conan的引用。
dependencies {// 添加对libs文件夹中aar文件的依赖implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')// 添加推流SDK的依赖implementation 'com.alivc.live:AliLiveSdk:4.0.2'// 添加播放器core的依赖implementation 'com.aliyun.video.android:core:1.2.2'// 添加播放器SDK的依赖implementation 'com.aliyun.sdk.android:AliyunPlayer:5.2.3-full'// 添加conan的依赖implementation 'com.alivc.conan:AlivcConan:1.0.4'// 添加artcdemuxer的依赖implementation 'com.aliyun.sdk.android:AlivcArtc:5.2.3'// 添加netsdk的依赖implementation 'com.aliyun.rts.android:RtsSDK:1.5.0'
}
  1. 配置权限
    修改工程的AndroidManifest.xml文件,添加如下权限配置。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2. 使用说明

RTMP推流

  1. 创建AliLiveEngine。
//创建RTMP相关配置对象
AliLiveRTMPConfig rtmpConfig = new AliLiveRTMPConfig();
//初始化码率配置
rtmpConfig.videoInitBitrate = 1000;
rtmpConfig.videoTargetBitrate = 1500;
rtmpConfig.videoMinBitrate = 600;
//创建直播推流配置
AliLiveConfig mAliLiveConfig = new AliLiveConfig(rtmpConfig);
//初始化分辨率、帧率、是否开启高清预览、暂停后默认显示图片
mAliLiveConfig.videoFPS = 20;
mAliLiveConfig.videoPushProfile = AliLiveConstants.AliLiveVideoPushProfile.AliLiveVideoProfile_540P;
mAliLiveConfig.enableHighDefPreview = false;
mAliLiveConfig.pauseImage = bitmap;
mAliLiveConfig.accountId = "";
AliLiveEngine mAliLiveEngine = AliLiveEngine.create(PushActivity.this, mAliLiveConfig);
  1. 开始预览。
//创建预览显示窗口
AliLiveRenderView mAliLiveRenderView = mAliLiveEngine.createRenderView(false);
//添加预览显示窗口到布局中
addSubView(mAliLiveRenderView);
//设置预览显示模式
mAliLiveEngine.setPreviewMode(AliLiveRenderModeAuto, AliLiveRenderMirrorModeOnlyFront);
//开始预览
mAliLiveEngine.startPreview(mAliLiveRenderView);
  1. 开始推流。
mAliLiveEngine.startPush(mPushUrl);
  1. 停止推流。
//停止预览
mAliLiveEngine.stopPreview();
//停止推流
mAliLiveEngine.stopPush();
//销毁liveEngine
mAliLiveEngine.destroy();
mAliLiveEngine = null;

具体代码可以参阅推流SDK Demo,查看源码。一些功能参数配置,界面操作都可以参考Demo。简单来说,推流只需要服务器提供推流地址,然后传给推流SDK就行了。

推流失败的情况

  • 错误码12007:推流rtmp链接建立失败
    其他错误可以咨询阿里云sdk开发者(钉钉群32825314)

三、观看直播

后台返回观看直播的地址,一般是rtmp格式的,使用播放器播放即可。也可以使用阿里云的播放器来播放。

总结

使用阿里云直播SDK,安卓端整体接入使用是比较简单的。阿里云文档很详尽,问题沟通方便,有较好的使用体验。

【Android】使用阿里云直播实现手机直播功能相关推荐

  1. Android使用阿里云接口实现身份证识别功能

    前言 现如今,许多app需要智能识别用户提供的身份证图片上的信息来完成一些工作,阿里云刚好提供了这个接口,下面我们实现一个小的demo来和大家学习一下. 效果图: 随便在网上找了两张身份证图片,识别并 ...

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

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

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

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

  4. android配置阿里云仓库

    android配置阿里云仓库 // Top-level build file where you can add configuration options common to all sub-pro ...

  5. Android集成阿里云旺即时通讯踩坑历程

    下载云旺的demo,将demo中的OneSDK直接拷贝,作为Moudle进行依赖,具体操作就不说了,OneSDK是最新的,一定不要进行修改, 进行依赖后,可能会遇到buildToolsVersion ...

  6. android使用阿里云推流播放器记录

    android使用阿里云推流播放器记录: 在这里扯一句,如何删除csdn自己上传的资源:(参考:https://blog.csdn.net/qq_38122230/article/details/79 ...

  7. 物联网控制APP入门专题(二)---阿里云iot studio移动可视化功能基本操作

    微信小程序连接阿里云物联网平台云端API实现物联操控 03-25 其中包含cryptojs.uuid生成模块,还有用于微信小程序连接阿里云物联网平台云端API的专属sdk,已结实现效果demo,只需填 ...

  8. 阿里云的短信验证功能实现

    阿里云的短信验证功能实现 第一步:申请 签名,模板,RAM访问控制 签名 模板 RAM访问控制 创建用户 创建完一定要保存 这个 截图里面的参数 这只能看一次 创建完成,添加授权 搜索 短信 添加 管 ...

  9. 阿里云消息队列 2021 新功能新特性重要里程碑

    关于阿里云消息队列更多新功能新特性及详细介绍,欢迎大家查阅官网各产品"新功能发布记录": [1]  RocketMQ: ​​https://help.aliyun.com/docu ...

最新文章

  1. debian php 升级,Debian和ubuntu服务器升级PHP7
  2. 算法(6) —— AVL树
  3. Matlab绘制小波尺度函数和小波函数
  4. ITK:在二进制映像中标记Connect组件
  5. 兼容IE678的placeholder
  6. yelee主题中加入revolvermaps插件
  7. idea代码样式模板_阿里p3c(代码规范,eclipse插件、模版,idea插件)
  8. 男人该知道的人生感悟(图)
  9. com.alibaba.dubbo.rpc.RpcException: Forbid consumer 192.168.184.1 access service com.foreveross.syst
  10. Hive系列(一)metastore的认证和授权
  11. ShaderLab学习小结(四)简单产生阴影
  12. CSS笔记-除了a标签外的hover属性的应用
  13. 失败的信息化案例分享
  14. ios旧版本app网站_这两款app已解锁永久订阅版!
  15. ExtJS4.2学习 php版(五)
  16. 用程序关闭、注销、重启计算机
  17. 合抱之木,生于毫末。九层之台,起于累土。千里之行,始于足下
  18. asdfasdfasdf
  19. 数据分析之Pandas(三):汇总、统计、相关系数和协方差
  20. (windows注册表大全)别人写的,我记录下

热门文章

  1. 又一年神仙打架,清华大学特等奖学金答辩会上15位大神现场竞争!
  2. SPSS实现单样本K-S检验
  3. 欢迎观看Toni_hou的#生活1
  4. Apache DbUtils 探秘
  5. python文件生成exe文件
  6. HMS Core Drive SDK构建使用华为云空间服务应用程序
  7. 图像处理 手写体英文字母的目标检测与识别 实验报告
  8. 为你的项目搭建sentry并且通过企微推送
  9. np.ceil的用法
  10. 电脑桌面云便签怎么设置自动识别超链接?