【Android】使用阿里云直播实现手机直播功能
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、阿里云视频直播流程
- 二、录制直播推流步骤
- 1. 集成说明
- 通过本地依赖方式集成SDK
- 通过Maven依赖方式集成SDK
- 2. 使用说明
- RTMP推流
- 推流失败的情况
- 三、观看直播
- 总结
前言
最近公司项目里需要接入手机直播功能,因为之前PC直播用的是阿里云,后台服务器域名等都是部署在阿里云上。所以手机直播也选用了阿里云直播SDK。
一、阿里云视频直播流程
阿里云直播文档
- 主播通过采集设备采集直播内容后,通过推流SDK推送直播流,视频直播服务通过边缘推流的方式将直播流推送至阿里云直播中心,推送的视频流通过CDN边缘节点进行加速保证上行传输的稳定性。
- 视频流推送至阿里云直播中心后,可按需对视频流进行转码、时移、录制、截图等处理。
- 处理好的视频流通过CDN内容分发网络,下发至观众的设备中进行播放。移动端的播放设备可以集成阿里云提供的播放器SDK进行开发。
- 直播视频除了可以进行转码截图等操作外,还可以进行直播转点播的操作,将录制下来的视频转至点播系统中再进行点播播放和短视频云剪辑。方便直播与短视频内容生产和传播的联动。
此处展商对应着主播。
二、录制直播推流步骤
1. 集成说明
通过本地依赖方式集成SDK
下载并解压Android端推流SDK。更多信息,请参见推流SDK。
新建项目,复制推流SDK文件AliLiveSdk.aar和播放器相关文件到App模块下的libs文件夹中。修改工程的build.gradle文件,在allprojects的repositories节点中增加flatDir的设置以及阿里Maven地址。
maven {url 'https://maven.aliyun.com/repository/releases'
}
flatDir {dirs 'libs'
}
- 修改App中的build.gradle文件。
dependencies {// 添加对libs文件夹中aar文件的依赖implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
}
通过Maven依赖方式集成SDK
- 新建项目。
修改工程的build.gradle文件,在allprojects的repositories节点中增加flatDir的设置以及阿里Maven地址。
maven {url 'https://maven.aliyun.com/repository/releases'
}
flatDir {dirs 'libs'
}
- 修改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'
}
- 配置权限
修改工程的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推流
- 创建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);
- 开始预览。
//创建预览显示窗口
AliLiveRenderView mAliLiveRenderView = mAliLiveEngine.createRenderView(false);
//添加预览显示窗口到布局中
addSubView(mAliLiveRenderView);
//设置预览显示模式
mAliLiveEngine.setPreviewMode(AliLiveRenderModeAuto, AliLiveRenderMirrorModeOnlyFront);
//开始预览
mAliLiveEngine.startPreview(mAliLiveRenderView);
- 开始推流。
mAliLiveEngine.startPush(mPushUrl);
- 停止推流。
//停止预览
mAliLiveEngine.stopPreview();
//停止推流
mAliLiveEngine.stopPush();
//销毁liveEngine
mAliLiveEngine.destroy();
mAliLiveEngine = null;
具体代码可以参阅推流SDK Demo,查看源码。一些功能参数配置,界面操作都可以参考Demo。简单来说,推流只需要服务器提供推流地址,然后传给推流SDK就行了。
推流失败的情况
- 错误码12007:推流rtmp链接建立失败
其他错误可以咨询阿里云sdk开发者(钉钉群32825314)
三、观看直播
后台返回观看直播的地址,一般是rtmp格式的,使用播放器播放即可。也可以使用阿里云的播放器来播放。
总结
使用阿里云直播SDK,安卓端整体接入使用是比较简单的。阿里云文档很详尽,问题沟通方便,有较好的使用体验。
【Android】使用阿里云直播实现手机直播功能相关推荐
- Android使用阿里云接口实现身份证识别功能
前言 现如今,许多app需要智能识别用户提供的身份证图片上的信息来完成一些工作,阿里云刚好提供了这个接口,下面我们实现一个小的demo来和大家学习一下. 效果图: 随便在网上找了两张身份证图片,识别并 ...
- Android开发-在Android里接入阿里云推流SDK实现直播推流的功能
前 言 如今,在国内移动互联网发展了几年的时间,移动开发技术也相对的成熟,在咱们日常使用的手机App中也少不了直播的功能,不管是娱乐类.游戏类.体育类还是教育类等的App都会有直播的功能,可以说直播的 ...
- 助力APP尽情“撒币”!阿里云正式上线移动直播问答解决方案
摘要: 2018年伊始,互联网圈就刮起了一阵"大佬狂撒币,网友喜答题"的热潮,为了助力企业紧握风口,阿里云推出一站式移动直播问答解决方案.通过稳定高性能的计算基础设施和可扩展的直播 ...
- android配置阿里云仓库
android配置阿里云仓库 // Top-level build file where you can add configuration options common to all sub-pro ...
- Android集成阿里云旺即时通讯踩坑历程
下载云旺的demo,将demo中的OneSDK直接拷贝,作为Moudle进行依赖,具体操作就不说了,OneSDK是最新的,一定不要进行修改, 进行依赖后,可能会遇到buildToolsVersion ...
- android使用阿里云推流播放器记录
android使用阿里云推流播放器记录: 在这里扯一句,如何删除csdn自己上传的资源:(参考:https://blog.csdn.net/qq_38122230/article/details/79 ...
- 物联网控制APP入门专题(二)---阿里云iot studio移动可视化功能基本操作
微信小程序连接阿里云物联网平台云端API实现物联操控 03-25 其中包含cryptojs.uuid生成模块,还有用于微信小程序连接阿里云物联网平台云端API的专属sdk,已结实现效果demo,只需填 ...
- 阿里云的短信验证功能实现
阿里云的短信验证功能实现 第一步:申请 签名,模板,RAM访问控制 签名 模板 RAM访问控制 创建用户 创建完一定要保存 这个 截图里面的参数 这只能看一次 创建完成,添加授权 搜索 短信 添加 管 ...
- 阿里云消息队列 2021 新功能新特性重要里程碑
关于阿里云消息队列更多新功能新特性及详细介绍,欢迎大家查阅官网各产品"新功能发布记录": [1] RocketMQ: https://help.aliyun.com/docu ...
最新文章
- debian php 升级,Debian和ubuntu服务器升级PHP7
- 算法(6) —— AVL树
- Matlab绘制小波尺度函数和小波函数
- ITK:在二进制映像中标记Connect组件
- 兼容IE678的placeholder
- yelee主题中加入revolvermaps插件
- idea代码样式模板_阿里p3c(代码规范,eclipse插件、模版,idea插件)
- 男人该知道的人生感悟(图)
- com.alibaba.dubbo.rpc.RpcException: Forbid consumer 192.168.184.1 access service com.foreveross.syst
- Hive系列(一)metastore的认证和授权
- ShaderLab学习小结(四)简单产生阴影
- CSS笔记-除了a标签外的hover属性的应用
- 失败的信息化案例分享
- ios旧版本app网站_这两款app已解锁永久订阅版!
- ExtJS4.2学习 php版(五)
- 用程序关闭、注销、重启计算机
- 合抱之木,生于毫末。九层之台,起于累土。千里之行,始于足下
- asdfasdfasdf
- 数据分析之Pandas(三):汇总、统计、相关系数和协方差
- (windows注册表大全)别人写的,我记录下