当前位置:主页 > 查看内容

X-P2P 接入说明 - 接入指引

发布时间:2021-10-13 00:00| 位朋友查看

简介:腾讯云 X-P2P 解决方案,可帮助用户直接使用经过大规模验证的直播、点播、文件分发服务,通过经商用验证的 P2P 服务大幅节省带宽成本,提供更优质的用户体验。开发者可通过 SDK 中简洁的接口快速同自有应用集成,实现 iOS 设备上的 P2P 加速功能。 传统 CDN……

腾讯云 X-P2P 解决方案,可帮助用户直接使用经过大规模验证的直播、点播、文件分发服务,通过经商用验证的 P2P 服务大幅节省带宽成本,提供更优质的用户体验。开发者可通过 SDK 中简洁的接口快速同自有应用集成,实现 iOS 设备上的 P2P 加速功能。

传统 CDN 加速服务中,客户端向 CDN 发送 HTTP 请求获取数据。在腾讯云 X-P2P 服务中,SDK 可以视为下载代理模块,客户端应用将 HTTP 请求发送至 SDK,SDK 从 CDN 或其他 P2P 节点获取数据,并将数据返回至上层应用。SDK 通过互相分享数据降低 CDN 流量,并通过 CDN 的参与,确保了下载的可靠性。

说明:

SDK 支持多实例,即支持同时开启多个直播 P2P。

支持的架构

当前 iOS SDK 支持如下 ABI 架构:

  • armv7
  • armv7s
  • arm64
  • x86
  • x86_64

集成 SDK

通过 CocoaPods 集成

  1. 在项目根目录创建 Podfile 文件。
    platform :ios, '9.0'
    target 'RTMPiOSDemo' do #这里需要修改成自己的target工程
    use_frameworks!
    pod 'xnet', :git => 'https://github.com/tencentyun/xnet-ios-sdk.git', :tag => "release-lastest"
    end
  2. 在 Terminal 中执行以下命令。
    pod install
    如果您是更新版本请执行:
    pod update
  3. 打开 workspace:
    open RTMPiOSDemo.xcworkspace #您需要打开自己的xcworkspace

通过 framework 集成

  1. 拷贝 X-P2P 团队提供的 xnet.framework
  2. 直接通过 Xode -> General -> "Framework, Libraries, and Embedded Content" 添加 xnet.framework

配置应用

腾讯云对接人员会提供 iOS 项目的 Bundle identifier,并索取 App IDApp KeyApp Secret Key,如以下形式:

Bundle identifier:com.qcloud.helloworld
NSString *appID = @"your_appID";
NSString *key = @"your_key";
NSString *secret = @"your_secret";

接入步骤

  1. 解压 TencentXP2P.zip 文件得到 TencentXP2P.framework,并在项目中引用。
  2. 在 App 启动时初始化 XP2PModule,并随后初始化 P2P SDK。
// Example: 程序的入口AppDelegate.m
#import "AppDelegate.h"
#import <TencentXP2P/TencentXP2P.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// do something other...
    //下面的接口调用可以开启SDK log的打印,不调用该接口,log打印默认不开启
[XNet enableDebug]
    NSString *appID = @"your app id";
NSString *key = @"your app key";
NSString *secret = @"your app secret";
bool ok = [XNet initWith:appID appKey:key appSecretKey:secret];
    return YES;
}
- (void)onLogPrint:(NSString*)msg {
//这里能够收到SDK输出的日志
}
@end
  1. 加载一个频道。
    - (int)startPlay:(NSString*)url
    {
     // 将resource之前的 域名/路径 内容替换为 [XP2PModule host] 即可,例如
     // 原先是,http://example.cdn.com/live/streamid.flv?token=xxx
     // 转换成,http://127.0.0.1:16080/live.p2p.com/example.cdn.com/live/streamid.flv?token=xxx
     NSString* p2pUrl = [url stringByReplacingOccurrencesOfString:@"http://" withString:
                             [XNet proxyOf:@"live.p2p.com"]];
     NSString *codecID = @"_h265";
     NSString *stremaid = [[url lastPathComponent] stringByDeletingPathExtension];
     NSString *xresid = [NSString stringWithFormat:@"%@_%@", stremaid, codecID];
     NSString* param = [NSString stringWithFormat:@"?xresid=%@", xresid];
     p2pUrl = [p2pUrl stringByAppendingString:param];
     // 直接播放此url即可
     [_player startPlay:p2pUrl];
     return EXIT_SUCCESS;
    }

卸载一个频道。

- (int)stopPlay
{
    // 播放器链接断开以后 SDK内部会自动释放频道相关的资源, 直接关闭播放器即可
    [_player stopPlay];
    return EXIT_SUCCESS;
}
  1. 恢复前台显示时,必须调用 resume。否则在播放器暂停阶段 iOS 会关闭链接,此时向代理发起请求,会收到类似502的错误。
      bool ok = [XNet resume];

注意事项

以上是一个播放器使用 P2P 的基本调用,完成上述调用后您就可以使用 P2P 为播放器提供服务了,但一个更加完善的客户端还需要做以下工作:

  • 统计流量,获取 SDK 运行过程中的 P2P 流量和 CDN 流量。
  • 监听网络变化,在移动网络显示 P2P 上传,WIFI 网络开启 P2P 上传(默认开启)。

这些设置您需要以 HTTP 请求的方式告知 SDK 代理服务,调用 API 请参见 API 说明。


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:快速入门_云监控服务 CES_API参考 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐