声网 直播SDK小结

声网AndroidSDK支持两种场景:

  • 音视频通话

  • 音视频直播

    如标题所示,本文主要阐述直播相关知识


1. 直播场景描述
声网直播场景针对 CDN 推流场景设计,主要涉及两种模式切换

  • 单主播模式
    主播可以采用Agora SDK 或者第三方推流工具(比如ijkplayer)推流到 CDN。观众通过 CDN 播放器拉取主播视频流观看直播。
  • 双主播 PK 模式
    两个主播退出 CDN 推流并同时加入同一个声网频道,各自在声网服务端设置双主播的合图(setLiveTranscoding),并通过声网提供的推流接口(addPublishStreamUrl)将合图后的流推送到原先的 CDN 地址。各自的 CDN 观众看到两个主播开始 PK。由于两个 PK 主播各自的 CDN 推流地址未发生改变,CDN 观众端不需要切换 CDN 拉流地址。只要任意一个主播离开声网 PK 频道,另一主播也退出 PK 模式返回普通模式

2. 直播PK原理图
声网 直播SDK小结_第1张图片

3. 声网直播关键参数
声网 直播SDK小结_第2张图片这个包大小要慎重考虑一下

4. 声网直播发版说明:

版本号 发版时间 改动点
1.12 2017年7月25日 增加加密模式
1.13 2017年9月04日 关注上下麦回调,关闭语音播放,软编视频属性可控等
1.14 2017年10月20日 提供基础变声,直播秒开优化,Android适配
2.0 2017年12月06日 增加摄像头控制:缩放等,支持服务端踢人,Android模拟器
2.1.0 2018年3月07日 17位主播同时直播连麦,允许自定义视频源,
2.2.0 2018年5月04日 大量主播连麦抖屏问题优化等
2.2.3 2018年7月05日 注意动态秘钥机制
2.3.0 2018年8月31日 大版本,改进稳定性
2.3.1 2018年10月12日 视频编码适配
2.3.2 2019年1月16日 抗丢包,兼容性等
2.3.3 2019年1月24日 P9华为兼容等
2.4.0 2019年4月01日 新增美颜、变声和混响、缩短了远端视频出图时间等

5. 运行DEMO Agora-Online-PK-Android

下载解压后 Agora-Online-PK-Android

  1. 关注调整下gradle和gradle tools的版本号
  2. 然后复制.jar和.so到指定文件夹,见 这篇文章
  3. 切记要正确配置一下
 sourceSets {
        main {
            jniLibs.srcDirs = ['src/main/jniLibs']
//            jniLibs.srcDirs = ['../../../libs']
        }
    }
  1. 还有测试时,输入相同的PK频道房间名字即可

  2. 示例程序功能

  • 开始直播:在首页输入直播频道名,点击“开始直播”按钮,进入直播房间,开始直播和 CDN 推流;
  • 发起PK:在房间内点击“PK”按钮,并输入“PK房间名”进入PK(需要两个主播同时输入相同的“PK房间名”以进入同一房间);
  • 退出PK:点击“退出PK”按钮,退出PK模式,返回单主播模式;
  • 退出房间:点击右上角“离开”按钮,离开直播房间;
  • 拷贝拉流地址:在直播中可点击“拷贝”按钮,拷贝拉流地址,使用 CDN 播放器(如 VLC),也可参考我以前一篇文章:直播测试拉流播放器和地址

6. 集成注意点

  1. 单主播模式与 PK 模式切换时一定要先停止原先的推流,再重新开始推流,否则会推流失败
  2. 观众一般需要感知主播模式的改变来更新UI,一般是通过信令通知观众(或者项目中其他消息IM机制)
  3. 由于信令和 CDN 视频流存在时间差(CDN 推流一般存在数秒的延迟),为了更好的用户体验,可以在切换模式时做一个延时动画,让用户忽略这个时间差。也可以通过 CDN 播放器的特有回调(如视频尺寸改变)来感知主播状态的变化
  4. 加入频道正式应用中一般采用Token模式(我集成时就使用了简单Channel Name的方式登录,结果找了半天bug)
 private void joinChannel() {
    // 这个null需传入Token
    mRtcEngine.joinChannel(null, "demoChannel1", "Extra Optional Data", 0); // if you do not specify the uid, Agora will assign one.
}

7. 参考

  1. 声网CSDN账号
  2. 直播API 参考链接
  3. 这么多连麦方案,到底哪种适合你?
  4. 互动直播介绍
  5. PK 连麦
  6. Agora-Online-PK-Android 声网PK Github地址
  7. 到处都在说直播连麦技术,它们真的能连吗? 介绍了,CDN概念,短板,直播原理等
  8. 声网
  9. 直播 SEI 相关问题
  10. MediaPlayer+TextureView实现小视频居中(不拉伸)播放

你可能感兴趣的:(Android,视频直播)