腾讯云X-P2P接入说明_音视频解决方案_同尘科技
腾讯云 X-P2P 解决方案,可帮助用户直接使用经过大规模验证的直播、点播、文件分发服务,通过经商用验证的 P2P 服务大幅节省带宽成本,提供更优质的用户体验。开发者可通过 SDK 中简洁的接口快速同自有应用集成,实现 Android 设备上的 P2P 加速功能。传统 CDN 加速服务中,客户端向 CDN 发送 HTTP 请求获取数据。在腾讯云 X-P2P 服务中,SDK 可以视为下载代理模块,客户端应用将 HTTP 请求发送至 SDK,SDK 从 CDN 或其他 P2P 节点获取数据,并将数据返回至上层应用。SDK 通过互相分享数据降低 CDN 流量,并通过 CDN 的参与,确保了下载的可靠性。
SDK 名称 | XP2P Android 端 SDK |
版本号 | V1.3.5 |
SDK 介绍 | 为直播、点播、下载等场景的内容分发网络提供P2P点到点对等网络内容共享加速 |
开发者 | 腾讯云计算(北京)有限责任公司 |
个人信息处理规则 | XP2P SDK 隐私保护协议 |
下载 SDK | 单击下载 Android SDK压缩包 |
说明 SDK 支持多实例,即支持同时开启多个不同资源的直播 P2P。
支持的架构
当前 Android SDK 支持如下 ABI 架构:armeabi-v7aarm64-v8ax86x86_64
添加依赖
通过 bintray 获取最新的 gradle 组件包:
implementation 'com.tencent.qcloud:xnet:release-lastest'
混淆配置
由于 native 层代码需要反射调回 java,需要确保 SDK 内的代码都不被混淆,请在 proguard 中添加以下配置:
-keep public class com.tencent.qcloud.** { *;}
接入步骤
步骤1:初始化
在 App 启动时初始化 XP2PModule
,并随后初始化 P2P SDK。
// 初始化appId等关键客户信息final String APP_ID = "$your_app_id";final String APP_KEY = "$your_app_key";final String APP_SECRET = "$your_app_secret";
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
// 返回值ok可用于统计p2p成功与失败 // 无论成功与失败,都可以使用XNet.proxyOf与XNet.proxyOf // 失败时,XNet.proxyOf是"" // 成功时,XNet.proxyOf是127.0.0.1:16080/${domain} bool ok = XNet.create(this, APP_ID, APP_KEY, APP_SECRET);
//开启调试日志(发布可关闭) XNet.enableDebug();}
步骤2:接入直播 Live
直播播放控制 P2P(start/stop),操作如下:1. 启动直播 P2P:
// 例如:http://domain/path/to/resource.flv?params=xxx// 变成:http://{XNet.proxyOf(domain)}/path/to/resource.flv?params=xxx// 要改的仅仅是在://后插入XNET.proxyOf String codecID = "_h265"; String streamID = url.substring(url.lastIndexOf(("/") + 1)); streamID = streamID.substring(0, streamID.indexOf("."));
String xResID = streamID + codecID; String param = "?xresid=" + xResID; //该参数标识P2P资源
String p2pURl = url.replace("http://", XNet.proxyOf("live.p2p.com")); p2pURl += param;
// 通过获取的url, 播放器直接执行请求 mediaPlayer.setDataSource(context, Uri.parse(p2pUrl), headers); mediaPlayer.prepareAsync();
// 相关资源随着http请求关闭直接释放,无需再做任何处理 //注意:该http请求可能会返回302
2. 由于后台监听限制的问题,resume 的情况下需要调用 resume 接口。
// 返回值ok代表着是否恢复成功 bool ok = XNet.resume();
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?