Skip to content

Commit 52a1319

Browse files
committed
Init project
1 parent 657fa95 commit 52a1319

22 files changed

+997
-1
lines changed
Binary file not shown.
Binary file not shown.

.vs/X2TicTracker-FFPlay/v17/.suo

38 KB
Binary file not shown.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
{
2+
"Version": 1,
3+
"WorkspaceRootPath": "C:\\Work\\GitHub\\X2TikTracker-Windows\\",
4+
"Documents": [
5+
{
6+
"AbsoluteMoniker": "D:0:0:{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}|X2TicTracker-FFPlay\\X2TicTracker-FFPlay.vcxproj|C:\\Work\\GitHub\\X2TikTracker-Windows\\X2TicTracker-FFPlay\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
7+
"RelativeMoniker": "D:0:0:{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}|X2TicTracker-FFPlay\\X2TicTracker-FFPlay.vcxproj|solutionrelative:X2TicTracker-FFPlay\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
8+
},
9+
{
10+
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Work\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
11+
}
12+
],
13+
"DocumentGroupContainers": [
14+
{
15+
"Orientation": 1,
16+
"VerticalTabListWidth": 256,
17+
"DocumentGroups": [
18+
{
19+
"DockedHeight": 311,
20+
"SelectedChildIndex": 1,
21+
"Children": [
22+
{
23+
"$type": "Document",
24+
"DocumentIndex": 1,
25+
"Title": "main.cpp",
26+
"DocumentMoniker": "C:\\Work\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp",
27+
"RelativeDocumentMoniker": "..\\..\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp",
28+
"ToolTip": "C:\\Work\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp",
29+
"RelativeToolTip": "..\\..\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp",
30+
"ViewState": "AgIAAD0AAAAAAAAAAAAqwFMAAAABAAAAAAAAAA==",
31+
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
32+
"WhenOpened": "2024-11-22T07:49:07.128Z"
33+
},
34+
{
35+
"$type": "Document",
36+
"DocumentIndex": 0,
37+
"Title": "main.cpp",
38+
"DocumentMoniker": "C:\\Work\\GitHub\\X2TikTracker-Windows\\X2TicTracker-FFPlay\\main.cpp",
39+
"RelativeDocumentMoniker": "X2TicTracker-FFPlay\\main.cpp",
40+
"ToolTip": "C:\\Work\\GitHub\\X2TikTracker-Windows\\X2TicTracker-FFPlay\\main.cpp",
41+
"RelativeToolTip": "X2TicTracker-FFPlay\\main.cpp",
42+
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAjAAAAAAAAAA==",
43+
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
44+
"WhenOpened": "2024-11-22T06:47:25.201Z",
45+
"EditorCaption": ""
46+
}
47+
]
48+
}
49+
]
50+
}
51+
]
52+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
{
2+
"Version": 1,
3+
"WorkspaceRootPath": "C:\\Work\\GitHub\\X2TikTracker-Windows\\",
4+
"Documents": [
5+
{
6+
"AbsoluteMoniker": "D:0:0:{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}|X2TicTracker-FFPlay\\X2TicTracker-FFPlay.vcxproj|C:\\Work\\GitHub\\X2TikTracker-Windows\\X2TicTracker-FFPlay\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
7+
"RelativeMoniker": "D:0:0:{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}|X2TicTracker-FFPlay\\X2TicTracker-FFPlay.vcxproj|solutionrelative:X2TicTracker-FFPlay\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
8+
},
9+
{
10+
"AbsoluteMoniker": "D:0:0:{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}|X2TicTracker-FFPlay\\X2TicTracker-FFPlay.vcxproj|C:\\WORK\\GITHUB\\X2TIKTRACKER-WINDOWS\\THIRD_LIB\\X2TIKTRACKER\\INCLUDE\\IX2TIKTRACKER.H||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}",
11+
"RelativeMoniker": "D:0:0:{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}|X2TicTracker-FFPlay\\X2TicTracker-FFPlay.vcxproj|solutionrelative:THIRD_LIB\\X2TIKTRACKER\\INCLUDE\\IX2TIKTRACKER.H||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
12+
},
13+
{
14+
"AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Work\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp||{D0E1A5C6-B359-4E41-9B60-3365922C2A22}"
15+
}
16+
],
17+
"DocumentGroupContainers": [
18+
{
19+
"Orientation": 1,
20+
"VerticalTabListWidth": 256,
21+
"DocumentGroups": [
22+
{
23+
"DockedHeight": 311,
24+
"SelectedChildIndex": 2,
25+
"Children": [
26+
{
27+
"$type": "Document",
28+
"DocumentIndex": 1,
29+
"Title": "IX2TikTracker.h",
30+
"DocumentMoniker": "C:\\Work\\GitHub\\X2TikTracker-Windows\\third_lib\\X2TikTracker\\include\\IX2TikTracker.h",
31+
"RelativeDocumentMoniker": "third_lib\\X2TikTracker\\include\\IX2TikTracker.h",
32+
"ToolTip": "C:\\Work\\GitHub\\X2TikTracker-Windows\\third_lib\\X2TikTracker\\include\\IX2TikTracker.h",
33+
"RelativeToolTip": "third_lib\\X2TikTracker\\include\\IX2TikTracker.h",
34+
"ViewState": "AgIAAOYAAAAAAAAAAAAowPoAAAAKAAAAAAAAAA==",
35+
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000680|",
36+
"WhenOpened": "2024-11-22T08:18:09.892Z",
37+
"EditorCaption": ""
38+
},
39+
{
40+
"$type": "Document",
41+
"DocumentIndex": 2,
42+
"Title": "main.cpp",
43+
"DocumentMoniker": "C:\\Work\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp",
44+
"RelativeDocumentMoniker": "..\\..\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp",
45+
"ToolTip": "C:\\Work\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp",
46+
"RelativeToolTip": "..\\..\\X2Player\\X2TikTracker\\X2TikTracker\\main.cpp",
47+
"ViewState": "AgIAAD0AAAAAAAAAAAAqwFMAAAABAAAAAAAAAA==",
48+
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
49+
"WhenOpened": "2024-11-22T07:49:07.128Z"
50+
},
51+
{
52+
"$type": "Document",
53+
"DocumentIndex": 0,
54+
"Title": "main.cpp",
55+
"DocumentMoniker": "C:\\Work\\GitHub\\X2TikTracker-Windows\\X2TicTracker-FFPlay\\main.cpp",
56+
"RelativeDocumentMoniker": "X2TicTracker-FFPlay\\main.cpp",
57+
"ToolTip": "C:\\Work\\GitHub\\X2TikTracker-Windows\\X2TicTracker-FFPlay\\main.cpp",
58+
"RelativeToolTip": "X2TicTracker-FFPlay\\main.cpp",
59+
"ViewState": "AgIAADAAAAAAAAAAAAAAADcAAAAAAAAAAAAAAA==",
60+
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000677|",
61+
"WhenOpened": "2024-11-22T06:47:25.201Z",
62+
"EditorCaption": ""
63+
}
64+
]
65+
}
66+
]
67+
}
68+
]
69+
}
428 KB
Binary file not shown.

README.md

Lines changed: 142 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,142 @@
1-
# X2TikTracker-Windows
1+
## X2TikTracker-Windows
2+
3+
### 概述
4+
5+
**X2TikTracker** 是是一款支持基于 P2P 技术的视频加速工具。它集成了 WebRTC 和 HLS 等技术,旨在降低视频点播或直播的带宽消耗,提升播放体验。X2TikTracker 的核心理念是利用终端设备之间的上传能力,实现带宽共享,从而降低对传统 CDN 的依赖。
6+
7+
8+
9+
#### Demo运行指南
10+
11+
```
12+
./X2TicTracker-FFPlay/main.cpp
13+
14+
在上述文件中找到APP_ID
15+
16+
#define APP_ID "your app id"
17+
```
18+
19+
### 初始化
20+
21+
#### 构造函数
22+
23+
```windows
24+
IX2TikTracker* x2TikTracker = createX2TikTracker();
25+
```
26+
27+
**初始化示例:**
28+
29+
```windows
30+
x2TikTracker->initialize(APP_ID, NULL);
31+
```
32+
33+
**参数说明:**
34+
35+
- `appId`: The App ID issued by TikCdn to you. Apply for a new App ID from X2Rtc if it is missing from your kit.
36+
- `eventHandler`: The X2TikTrackerEventHanlder object that invokes callbacks to be passed to the application on TikTracker SDK runtime events.
37+
38+
39+
40+
### 核心方法
41+
42+
43+
#### 1. **开始播放**
44+
45+
```
46+
int startPlay(const char* strUrl, bool bShare)
47+
```
48+
49+
- **功能**: 开始播放指定地址的视频,并可选择是否启用 P2P 共享。
50+
51+
- **参数**:
52+
53+
- `url`: 视频播放地址。
54+
- `share`: 是否启用 P2P 共享。
55+
56+
- **返回值**: 操作结果的状态码。
57+
58+
- **示例**:
59+
60+
```
61+
int ret =x2TikTracker->startPlay("https://stream-tiktraker.tikcdn.cn/live/WhatIsTikcdn.m3u8", true);
62+
```
63+
64+
#### 2. **停止播放**
65+
66+
```
67+
int stopPlay()
68+
```
69+
70+
- **功能**: 停止当前播放。
71+
- **返回值**: 操作结果的状态码。
72+
73+
#### 3. **开始共享**
74+
75+
```
76+
int startShare()
77+
```
78+
79+
- **功能**: 开始 P2P 共享。
80+
81+
#### 4. **停止共享**
82+
83+
```
84+
int stopShare()
85+
```
86+
87+
- **功能**: 停止 P2P 共享。
88+
89+
#### 5. **更新令牌**
90+
91+
```
92+
int renewToken(const char* strToken)
93+
```
94+
95+
- **功能**: 更新令牌。
96+
- 参数
97+
- `token`: 新的授权令牌。
98+
99+
#### 6. **获取 p2p URL 地址**
100+
101+
```
102+
int getExPlayUrl(char* strUrl, int nUrlSize)
103+
```
104+
105+
- **功能**: 获取当前播放的p2p URL 地址。
106+
107+
#### 7. **释放资源**
108+
109+
```
110+
int release(bool sync = false)
111+
```
112+
113+
- **功能**: 释放所有资源并清空监听器。
114+
115+
### 回调接口
116+
117+
### **X2TikTrackerEventHandler**
118+
119+
用于接收播放和共享事件的回调接口:
120+
121+
```
122+
class X2TikTrackerEventHanlder {
123+
virtual void OnShareResult(TKT_CODE nCode);
124+
virtual void OnLoadDataStats(const char*jsStats);
125+
virtual void OnPeerOn(const char* strPeerUId, const char* strPeerUData);
126+
virtual void OnPeerOff(const char* strPeerUId, const char* strPeerUData);
127+
virtual void OnRenewTokenResult(const char* token, RENEW_TOKEN_ERR_CODE errorCode);
128+
virtual void OnTokenWillExpired();
129+
virtual void OnTokenExpired();
130+
}
131+
```
132+
133+
主要回调方法:
134+
135+
- `OnShareResult(TKT_CODE nCode)`: P2P 共享结果。
136+
- `OnLoadDataStats(const char*jsStats)`: 数据统计信息回调。
137+
- `OnRenewTokenResult(const char* token, RENEW_TOKEN_ERR_CODE errorCode)`: 令牌更新结果。
138+
- `OnTokenWillExpired()`: 令牌即将过期。
139+
- `OnTokenExpired()`: 令牌过期了。
140+
- `OnPeerOn(const char* strPeerUId, const char* strPeerUData)`: 一个新的 P2P 节点成功加入网络时,会触发该回调。此时,P2P 网络中会有新的设备或用户参与共享数据或资源。
141+
- `OnPeerOff(const char* strPeerUId, const char* strPeerUData)`: 一个 P2P 节点或用户从网络中断开时。
142+

X2TicTracker-FFPlay.sln

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.12.35506.116 d17.12
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "X2TicTracker-FFPlay", "X2TicTracker-FFPlay\X2TicTracker-FFPlay.vcxproj", "{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|x64 = Debug|x64
11+
Debug|x86 = Debug|x86
12+
Release|x64 = Release|x64
13+
Release|x86 = Release|x86
14+
EndGlobalSection
15+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16+
{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}.Debug|x64.ActiveCfg = Debug|x64
17+
{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}.Debug|x64.Build.0 = Debug|x64
18+
{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}.Debug|x86.ActiveCfg = Debug|Win32
19+
{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}.Debug|x86.Build.0 = Debug|Win32
20+
{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}.Release|x64.ActiveCfg = Release|x64
21+
{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}.Release|x64.Build.0 = Release|x64
22+
{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}.Release|x86.ActiveCfg = Release|Win32
23+
{D50C1B3F-31DE-40A8-B5A1-B23A45B2E243}.Release|x86.Build.0 = Release|Win32
24+
EndGlobalSection
25+
GlobalSection(SolutionProperties) = preSolution
26+
HideSolutionNode = FALSE
27+
EndGlobalSection
28+
EndGlobal

0 commit comments

Comments
 (0)