Skip to content

TikCDN/X2TikTracker-Harmony

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

X2TikTracker

概述

X2TikTracker 是是一款支持基于 P2P 技术的视频加速工具。它集成了 WebRTC 和 HLS 等技术,旨在降低视频点播或直播的带宽消耗,提升播放体验。X2TikTracker 的核心理念是利用终端设备之间的上传能力,实现带宽共享,从而降低对传统 CDN 的依赖。

Demo运行指南

Prj-Harmony/entry/src/main/ets/common/Config.ets

在上述类中输入您申请的appId即可

export const APP_ID: string = 'your appid'

请注意BundleName需与后台填写一致

初始化

构造函数

new X2TikTrackerEngine(APP_ID)

参数说明:

  • appId: 应用 ID,用于标识接入的合法性。

初始化示例:

engine = new X2TikTrackerEngine(APP_ID)

核心方法

1. 注册事件监听器

registerListener(listener: X2TikTrackerEventHandler)
  • 功能: 注册事件监听器以接收播放和共享相关的回调事件。

  • 参数:

    • listener: 实现 X2TikTrackerEventHandler 接口的实例。
  • 示例:

    class PageTrackerListener implements X2TikTrackerEventHandler {
      private host: PlayerPage
    
      constructor(host: PlayerPage) {
        this.host = host
      }
    
      onShareResult(code: TKT_CODE | undefined): void {
        this.host.updateShareResult(code)
      }
    
      onLoadDataStats(stats: DataStats): void {
        this.host.updateStats(stats)
      }
    
      onPeerOff(peerId: string, peerData: string): void {
        this.host.updatePeerStatus(`PeerOff: ${peerId} ${peerData}`)
      }
    
      onPeerOn(peerId: string, peerData: string): void {
        this.host.updatePeerStatus(`PeerOn: ${peerId} ${peerData}`)
      }
    }

2. 开始播放

startPlay(url: string, share: boolean): number
  • 功能: 开始播放指定地址的视频,并可选择是否启用 P2P 共享。

  • 参数:

    • url: 视频播放地址,目前支持HLS(m3u8)和MPEG-DASH(mpd)。
    • share: 是否启用 P2P 共享。
  • 返回值: 操作结果的状态码。

  • 示例:

    engine.startPlay("http://example.com/video.m3u8", true)
    

3. 停止播放

stopPlay(): number
  • 功能: 停止当前播放。
  • 返回值: 操作结果的状态码。

4. 开始共享

startShare(): number
  • 功能: 开始 P2P 共享。

5. 停止共享

stopShare(): number
  • 功能: 停止 P2P 共享。

6. 获取 p2p URL 地址

getExUrl(): string
  • 功能: 获取当前播放的p2p URL 地址。

8. 释放资源

release(): void
  • 功能: 释放所有资源并清空监听器。

回调接口

X2TikTrackerEventHandler

用于接收播放和共享事件的回调接口:

export interface X2TikTrackerEventHandler {
  onShareResult(code: TKT_CODE | undefined): void
  onLoadDataStats(stats: DataStats): void
  onPeerOff(peerId: string, peerData: string): void
  onPeerOn(peerId: string, peerData: string): void
}

主要回调方法:

  • onShareResult(code: TKT_CODE?): P2P 共享结果。
  • onLoadDataStats(stats: DataStats): 数据统计信息回调。
  • onPeerOn(peerId: String, peerData: String): 一个新的 P2P 节点成功加入网络时,会触发该回调。此时,P2P 网络中会有新的设备或用户参与共享数据或资源。
  • onPeerOff(peerId: String, peerData: String): 一个 P2P 节点或用户从网络中断开时。

About

P2P Streaming Engine for Android、OTT.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors