首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >移动直播LiteAVSDK,遇到Android 9.0 无法拉流问题

移动直播LiteAVSDK,遇到Android 9.0 无法拉流问题

原创
作者头像
腾讯云-chaoli
修改2019-03-12 11:42:52
1.5K0
修改2019-03-12 11:42:52
举报

简介

目前常见的直播协议有三种:RTMP、 FLV 和 HLS,腾讯移动直播LiteAVSDK都是支持的。

  • RTMP:RTMP 协议比较全能,既可以用来推送又可以用来直播,其核心理念是将大块的视频帧和音频帧“剁碎”,然后以小数据包的形式在互联网上进行传输,而且支持加密,因此隐私性相对比较理想,但拆包组包的过程比较复杂,所以在海量并发时也容易出现一些不可预期的稳定性问题。
  • FLV:FLV 协议由 Adobe 公司主推,格式极其简单,只是在大块的视频帧和音视频头部加入一些标记头信息,由于这种极致的简洁,在延迟表现和大规模并发方面都很成熟,唯一的不足就是在手机浏览器上的支持非常有限,但是用作手机端 App 直播协议却异常合适。
  • HLS:苹果推出的解决方案,将视频分成 5-10 秒的视频小分片,然后用 m3u8 索引表进行管理,由于客户端下载到的视频都是 5-10 秒的完整数据,故视频的流畅性很好,但也同样引入了很大的延迟(HLS 的一般延迟在 10-30s 左右)。相比于 FLV, HLS 在 iPhone 和大部分 Android 手机浏览器上的支持非常给力,所以常用于 QQ 和微信朋友圈的 URL 分享。

场景

Google 于北京时间2018年 8 月 7 日正式发布 Android 9.0 正式版系统,并宣布系统版本 Android P 被正式命名为代号“Pie”。对于出海的应用,开发者可能想让APP适配 API 28(Android 9.0 系统)。在适配过程中,开发者可能会遇到拉流失败的问题。

具体问题如下: 使用移动直播SDK播放功能,Pixel XL(9.0系统)手机只能播放 RTMP 格式的流,无法播放HTTP-FLV 格式的流。

解决方案

我们提供以下几种解决方案:

  1. 使用HTTPS协议的播放地址 将FLV格式的播放地址中的 HTTP 替换成 HTTPS。因为我们移动直播 SDK 是支持 HTTPS 协议的直播地址,终端开发者也无须做任何代码改动。
  2. 直接关闭网络策略 这种方式比较简单。直接在AndroidMainfest.xml 标签下使用 android:usesCleartextTraffic="true"
  1. 使用谷歌官方推荐的配置方案。 这种方案比较复杂,开发者可以参考下以下文档进行配置。

谷歌官网建议的网络安全性配置

Android P 中的网络安全配置指南

原理

因为Android 9.0修改了网络策略,所以导致http连接都被中断。

Android 9.0 更多变动信息可以阅读 谷歌官方文档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 场景
  • 解决方案
  • 原理
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档