P2P配置
配置参数ConfigOptions:
javascript
type ConfigOptions = {
p2pEnabled?: boolean,// 开启或关闭p2p engine 默认true
useStrictHlsSegmentId?: boolean,//使用基于url的SegmentId,替代默认基于序列号的 默认false
isSetTopBox?: boolean,// 如果运行于机顶盒请设置成true 默认false 安卓有 ios没有
logEnabled?: boolean,// 是否打印日志 默认false
logLevel?: number,// 打印日志的级别0:VERBOSE,1:DEBUG,2:INFO,3:WARN,4:ERROR 默认3
trackerZone?:number,// tracker服务器地址所在国家的枚举,分为0:Europe,1:HongKong,2:USA 默认0
downloadTimeout?:number,// HTTP下载ts文件超时时间 默认30000ms 安卓有 ios没有
localPortHls?:number,// HLS本地代理服务器的端口号(默认随机端口)
localPortDash?:number,// DASH本地代理服务器的端口号(默认随机端口) 安卓有 ios没有
diskCacheLimit?:number,// 点播模式下P2P在磁盘缓存的最大数据量(设为0可以禁用磁盘缓存) 默认2000*1024*1024
memoryCacheCountLimit?:number,// P2P在内存缓存的最大数据量,用ts文件个数表示 默认15
maxPeerConnections?:number,// 最大连接节点数量 默认25
useHttpRange?:boolean,// 在可能的情况下使用Http Range请求来补足p2p下载超时的剩余部分数据 默认true
httpHeadersForHls?:Map<string,string>,// 设置请求ts和m3u8时的HTTP请求头 默认null
httpHeadersForDash?:Map<string,string>,// 设置请求Dash文件时的HTTP请求头 默认null 安卓有 ios没有
httpLoadTime?:number,// P2P下载超时后留给HTTP下载的时间 默认3s
sharePlaylist?:boolean,// 是否允许m3u8文件的P2P传输 默认false
insertTimeOffsetTag?:number,// 仅在直播模式生效,在m3u8文件中插入 "#EXT-X-START:TIME-OFFSET=[timeOffset]",强制播放器从某个位置开始加载,其中 [timeOffset] 是在播放列表的偏移量,如果为负则从播放列表结尾往前偏移(单位:秒)
mediaFileSeparator?:string,// 媒体文件后缀分隔符 默认“.”
}
type ConfigOptions = {
p2pEnabled?: boolean,// 开启或关闭p2p engine 默认true
useStrictHlsSegmentId?: boolean,//使用基于url的SegmentId,替代默认基于序列号的 默认false
isSetTopBox?: boolean,// 如果运行于机顶盒请设置成true 默认false 安卓有 ios没有
logEnabled?: boolean,// 是否打印日志 默认false
logLevel?: number,// 打印日志的级别0:VERBOSE,1:DEBUG,2:INFO,3:WARN,4:ERROR 默认3
trackerZone?:number,// tracker服务器地址所在国家的枚举,分为0:Europe,1:HongKong,2:USA 默认0
downloadTimeout?:number,// HTTP下载ts文件超时时间 默认30000ms 安卓有 ios没有
localPortHls?:number,// HLS本地代理服务器的端口号(默认随机端口)
localPortDash?:number,// DASH本地代理服务器的端口号(默认随机端口) 安卓有 ios没有
diskCacheLimit?:number,// 点播模式下P2P在磁盘缓存的最大数据量(设为0可以禁用磁盘缓存) 默认2000*1024*1024
memoryCacheCountLimit?:number,// P2P在内存缓存的最大数据量,用ts文件个数表示 默认15
maxPeerConnections?:number,// 最大连接节点数量 默认25
useHttpRange?:boolean,// 在可能的情况下使用Http Range请求来补足p2p下载超时的剩余部分数据 默认true
httpHeadersForHls?:Map<string,string>,// 设置请求ts和m3u8时的HTTP请求头 默认null
httpHeadersForDash?:Map<string,string>,// 设置请求Dash文件时的HTTP请求头 默认null 安卓有 ios没有
httpLoadTime?:number,// P2P下载超时后留给HTTP下载的时间 默认3s
sharePlaylist?:boolean,// 是否允许m3u8文件的P2P传输 默认false
insertTimeOffsetTag?:number,// 仅在直播模式生效,在m3u8文件中插入 "#EXT-X-START:TIME-OFFSET=[timeOffset]",强制播放器从某个位置开始加载,其中 [timeOffset] 是在播放列表的偏移量,如果为负则从播放列表结尾往前偏移(单位:秒)
mediaFileSeparator?:string,// 媒体文件后缀分隔符 默认“.”
}
P2pEngine
实例化P2pEngine,获得一个全局单例:
javascript
//初始化
function initP2p (token:string,configOptions:ConfigOptions|null=null):void
//初始化
function initP2p (token:string,configOptions:ConfigOptions|null=null):void
参数说明:
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
token | string | 是 | CDNBye分配的token。 |
config | ConfigOptions | 否 | 自定义配置。 |
获取P2P地址或者切换源
当播放或切换到新的播放地址时,只需要将新的播放地址传给插件,从而获取新的本地播放地址:
javascript
function getP2pUrl(url : string, videoId:string|null=null, mimeType:string|null=null) : string
function getP2pUrl(url : string, videoId:string|null=null, mimeType:string|null=null) : string
参数说明:
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
url | string | 是 | 未经过转换的原始播放地址 |
videoId | string | 否 | 传入此参数将使用videoId构造channelId,其他端需要保持一致 |
mimeType | string | 否 | 传用于无".m3u8"或".mpd"后缀的url,传入字符串"m3u8"或"mpd" |
P2pEngine API
javascript
//当前插件的版本号。
function getP2pEngineVersion():string
//是否已与CDNBye后台建立连接。
function p2pIsConnected():boolean
//立即停止P2P加速并释放资源,一般只需要在退出APP的时候调用即可。SDK采用"懒释放"的策略,只有在重启p2p的时候才释放资源。对于性能较差的设备起播耗时可能比较明显,建议在视频播放之前提前调用 engine.stopP2p() 。
function stopP2p():void
//重启P2P加速服务,一般不需要调用。
function restartP2p():boolean
//获取对等连接的id。
function peerId():string
//动态设置请求ts和m3u8时的HTTP请求头。仅安卓
function setHttpHeadersForHls(headers: Map<String, String>):void
//动态设置请求Dash文件时的HTTP请求头。仅安卓
function setHttpHeadersForDash(headers: Map<String, String>):void
//运行时动态关闭P2P,在播放下一个媒体文件时才生效。
function disableP2p():void
//运行时动态开启P2P,在播放下一个媒体文件时才生效。
function enableP2p():void
//停止P2P并关闭代理服务器。
function shutdownP2p():void
//当前插件的版本号。
function getP2pEngineVersion():string
//是否已与CDNBye后台建立连接。
function p2pIsConnected():boolean
//立即停止P2P加速并释放资源,一般只需要在退出APP的时候调用即可。SDK采用"懒释放"的策略,只有在重启p2p的时候才释放资源。对于性能较差的设备起播耗时可能比较明显,建议在视频播放之前提前调用 engine.stopP2p() 。
function stopP2p():void
//重启P2P加速服务,一般不需要调用。
function restartP2p():boolean
//获取对等连接的id。
function peerId():string
//动态设置请求ts和m3u8时的HTTP请求头。仅安卓
function setHttpHeadersForHls(headers: Map<String, String>):void
//动态设置请求Dash文件时的HTTP请求头。仅安卓
function setHttpHeadersForDash(headers: Map<String, String>):void
//运行时动态关闭P2P,在播放下一个媒体文件时才生效。
function disableP2p():void
//运行时动态开启P2P,在播放下一个媒体文件时才生效。
function enableP2p():void
//停止P2P并关闭代理服务器。
function shutdownP2p():void