tcplayer.js 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +120 -0
- package/dist/examples/vod/tcplayer-vod-all.html +62 -19
- package/dist/examples/vod/tcplayer-vod-custom-playcgi.html +60 -0
- package/dist/examples/vod/tcplayer-vod-vr.html +11 -16
- package/dist/examples/vod/veplayer.html +38 -0
- package/dist/examples/webrtc/tcplayer-src-meeting.html +21 -8
- package/dist/examples/webrtc/tcplayer-src-webrtc-abr-new.html +53 -4
- package/dist/examples/webrtc/tcplayer-src-webrtc.html +5 -0
- package/dist/lang/zh-CN.js +1 -0
- package/dist/libs/TXLivePlayer-1.3.5.min.js +1 -1
- package/dist/libs/flv.min.1.6.4.js +10 -0
- package/dist/tcplayer.css +6 -3
- package/dist/tcplayer.min.css +1 -1
- package/dist/tcplayer.v5.2.0.min.js +21 -0
- package/package.json +4 -3
- package/dist/libs/TXLivePlayer-1.3.4.min.js +0 -1
- package/dist/libs/flv.min.1.6.3.js +0 -10
- package/dist/tcplayer.v5.1.0.min.js +0 -19
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
## TCplayer 更新日志
|
|
2
|
+
|
|
3
|
+
### TCplayer 4.6.0 @ 2022.11.04
|
|
4
|
+
- 新增支持多音轨
|
|
5
|
+
- 新增支持url形式的续播
|
|
6
|
+
- 修复部分问题
|
|
7
|
+
|
|
8
|
+
### TCplayer 4.5.4 @ 2022.8.26
|
|
9
|
+
- 新增支持快直播 abr,更新 txliveplayer
|
|
10
|
+
- 新增支持 av1 in flv,更新 flv.js
|
|
11
|
+
- 新增支持华曦达 DRM
|
|
12
|
+
- 新增支持快直播和标准直播统一自动播放被阻止事件到 blocked
|
|
13
|
+
- 新增支持打点回调事件
|
|
14
|
+
- 修复部分问题
|
|
15
|
+
|
|
16
|
+
### TCplayer 4.5.3 @ 2022.6.15
|
|
17
|
+
- 新增支持点播商业级 DRM
|
|
18
|
+
|
|
19
|
+
### TCplayer 4.5.2 @ 2022.4.15
|
|
20
|
+
- 修复通过劫持 mse 绕过私有加密方案盗取视频的漏洞
|
|
21
|
+
- 修复部分上报数据问题
|
|
22
|
+
|
|
23
|
+
### TCplayer 4.5.0 @ 2022.1.14
|
|
24
|
+
- 新增支持标准直播和快直播数据上报功能
|
|
25
|
+
- 新增支持 MP3 音频格式播放
|
|
26
|
+
- 新增支持弱网追帧能力
|
|
27
|
+
- 优化水印功能,支持更多配置项
|
|
28
|
+
- 修复若干问题
|
|
29
|
+
|
|
30
|
+
### TCplayer 4.4.0 @ 2021.12.14
|
|
31
|
+
- 新增支持快直播播放
|
|
32
|
+
- 新增点播场景的数据上报功能
|
|
33
|
+
- 新增支持通过 v4 接口播放媒体原文件和转码文件
|
|
34
|
+
|
|
35
|
+
### TCplayer 4.1 @ 2020.7.10
|
|
36
|
+
- 修改默认 hls.js 版本为0.13.2。
|
|
37
|
+
- 支持开启 Key 防盗链功能。
|
|
38
|
+
- 修复其他已知问题。
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### TCplayer 4.0 @ 2020.6.17
|
|
42
|
+
- 修复试看视频时长保持显示原始时长。
|
|
43
|
+
- 启用后台清晰度配置。
|
|
44
|
+
- 修复其他已知问题。
|
|
45
|
+
|
|
46
|
+
## TCplayerLite 更新日志
|
|
47
|
+
### TCplayerLite 2.4.1 @ 2021.06.25
|
|
48
|
+
- 新增支持 v1 信令的 WebRTC 的流地址。
|
|
49
|
+
- 增加 webrtcConfig 参数。
|
|
50
|
+
- 增加 WebRTC 卡顿、卡顿结束、推流结束事件。
|
|
51
|
+
|
|
52
|
+
### TCplayerLite 2.4.0 @ 2021.06.03
|
|
53
|
+
- 增加对快直播功能的支持。
|
|
54
|
+
- 修复其他已知问题。
|
|
55
|
+
|
|
56
|
+
### TCplayerLite 2.3.3 @ 2020.07.01
|
|
57
|
+
- 修复 X5 环境下切换全屏时,事件派发异常的问题。
|
|
58
|
+
- 规避 hls 切换源时,相关事件触发时机很慢,导致封面显示异常的问题。
|
|
59
|
+
|
|
60
|
+
### TCplayerLite 2.3.2 @ 2019.08.20
|
|
61
|
+
- 修改默认 hls 版本为0.12.4。
|
|
62
|
+
- 修复其他已知问题。
|
|
63
|
+
|
|
64
|
+
### TCplayerLite 2.3.1 @ 2019.04.26
|
|
65
|
+
- 增加 fivConfig 参数。
|
|
66
|
+
- 默认加载 flv.1.5.js。
|
|
67
|
+
- 修复其他已知问题。
|
|
68
|
+
|
|
69
|
+
### TCplayerLite 2.3.0 @ 2019.04.19
|
|
70
|
+
- 增加部分功能参数选项。
|
|
71
|
+
- 参数 coverpic 改为 poster。
|
|
72
|
+
- destroy 销毁 flv.js 实例。
|
|
73
|
+
- 修复其他已知问题。
|
|
74
|
+
|
|
75
|
+
### TCplayerLite 2.2.3 @ 2018.12.17
|
|
76
|
+
- 优化播放逻辑。
|
|
77
|
+
- 解决 iOS 微信没有播放事件触发的情况下,出现 loading 动画的问题。
|
|
78
|
+
- 修复其他已知问题。
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### TCplayerLite 2.2.2 @ 2018.05.03
|
|
82
|
+
- 优化 loading 组件。
|
|
83
|
+
- 优化 Flash destroy 方法。
|
|
84
|
+
- 默认使用 H5 播放。
|
|
85
|
+
- 修复已知问题。
|
|
86
|
+
|
|
87
|
+
### TCplayerLite 2.2.1 @ 2017.12.20
|
|
88
|
+
- 增加可配置清晰度文案功能。
|
|
89
|
+
- 设置默认清晰度。
|
|
90
|
+
- 支持切换清晰度方法。
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
### TCplayerLite 2.2.1 @ 2017.12.07
|
|
94
|
+
- 增加 systemFullscreen 参数。
|
|
95
|
+
- 增加 flashUrl 参数。
|
|
96
|
+
- 修复音量 Max 后进行静音切换的 UI 问题。
|
|
97
|
+
- 修复 iOS 11 微信下需要单击两次才能播放的问题。
|
|
98
|
+
- 修复 safari 11 系统样式被遮挡的问题。
|
|
99
|
+
- 适配在 x5 内核会触发 seeking,但不会触发 seeked 的情况。
|
|
100
|
+
- 修复进度条拖拽到起始位置,设置 currentTime 失败的问题。
|
|
101
|
+
- 切换清晰度保持音量不变。
|
|
102
|
+
- 修复页面宽度为0,播放器宽度判断失败问题。
|
|
103
|
+
- destroy 方法增加完全销毁播放器节点。
|
|
104
|
+
|
|
105
|
+
### TCplayerLite 2.2.0 @ 2017.06.30
|
|
106
|
+
- 增加控制播放环境判断的参数: Flash、h5_flv、x5_player。
|
|
107
|
+
- 调整播放器初始化逻辑,优化错误提示效果。
|
|
108
|
+
- 增加 flv.js 支持,在符合条件的情况下可以采用 flv.js 播放 FLV。
|
|
109
|
+
- 支持 x5-video-orientation 属性。
|
|
110
|
+
- 增加播放环境判断逻辑,可通过参数调整 H5 与 Flash 的优先级,以及是否启用 TBS 播放。
|
|
111
|
+
- 启用版本号发布方式,避免影响旧版本的使用者。
|
|
112
|
+
- 优化事件触发的时间戳,统一为标准时间。
|
|
113
|
+
- Bug 修复。
|
|
114
|
+
|
|
115
|
+
### TCplayerLite 2.1.0 @ 2017.03.04
|
|
116
|
+
至2017.06.30,经历数次的迭代开发,逐步趋于稳定,目前文档的功能描述中,如果没有特殊说明,皆基于此版本。
|
|
117
|
+
|
|
118
|
+
## Adapter 插件更新日志
|
|
119
|
+
### Adapter 插件发布 @ 2021.07.16
|
|
120
|
+
首次发布播放器 Adapter 版
|
|
@@ -8,13 +8,18 @@
|
|
|
8
8
|
<link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.6.0/tcplayer.min.css" rel="stylesheet"/>
|
|
9
9
|
|
|
10
10
|
<!-- <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.8.0/libs/hls.min.1.1.6.js"></script> -->
|
|
11
|
-
<!-- <script src="http://127.0.0.1:
|
|
11
|
+
<!-- <script src="http://127.0.0.1:8081/dist/hls.js"></script> -->
|
|
12
12
|
<!--播放器脚本文件-->
|
|
13
|
-
<!-- <script src="https://web.sdk.qcloud.com/player/tcplayer/release/
|
|
13
|
+
<!-- <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v5.2.0/tcplayer.v5.2.0.min.js"></script> -->
|
|
14
14
|
<!-- <script src="https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/tcplayer.v4.8.0.js"></script> -->
|
|
15
15
|
<!-- <script src="https://webrtc-demo.myqcloud.com/pull-sdk/js/vconsole.min.js"></script> -->
|
|
16
|
-
<script src="http://localhost:8080/dist/tcplayer.v5.0.0.min.js"></script>
|
|
17
16
|
|
|
17
|
+
<!-- <script src="http://127.0.0.1:8081/dist/tcplayer-safe-check-plugin.1.1.0.js"></script> -->
|
|
18
|
+
<script src="http://localhost:8080/dist/tcplayer.v5.2.0.js"></script>
|
|
19
|
+
|
|
20
|
+
<script>
|
|
21
|
+
|
|
22
|
+
</script>
|
|
18
23
|
|
|
19
24
|
|
|
20
25
|
<style>
|
|
@@ -54,7 +59,32 @@
|
|
|
54
59
|
-->
|
|
55
60
|
<script>
|
|
56
61
|
// var vConsole = new VConsole();
|
|
57
|
-
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
// videojs.plugin('myPlugin', function() {
|
|
65
|
+
// // 在插件初始化时执行的代码
|
|
66
|
+
// var player = this;
|
|
67
|
+
|
|
68
|
+
// // 在播放器准备就绪时执行的代码
|
|
69
|
+
// player.ready(function() {
|
|
70
|
+
// // 在播放器准备就绪时添加自定义按钮
|
|
71
|
+
// var myButton = player.controlBar.addChild('button', {
|
|
72
|
+
// text: 'My Plugin',
|
|
73
|
+
// // 在按钮点击时执行的代码
|
|
74
|
+
// onClick: function() {
|
|
75
|
+
// // 在控制台打印一条消息
|
|
76
|
+
// console.log('My Plugin button clicked!');
|
|
77
|
+
// }
|
|
78
|
+
// });
|
|
79
|
+
|
|
80
|
+
// // 在播放器销毁时移除自定义按钮
|
|
81
|
+
// player.on('dispose', function() {
|
|
82
|
+
// player.controlBar.removeChild(myButton);
|
|
83
|
+
// });
|
|
84
|
+
// });
|
|
85
|
+
// });
|
|
86
|
+
|
|
87
|
+
TCPlayer.mountHlsProvider(true);
|
|
58
88
|
var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
|
|
59
89
|
// autoplay: true,
|
|
60
90
|
// language: 'en',
|
|
@@ -85,35 +115,37 @@
|
|
|
85
115
|
// appID: '1306264703',
|
|
86
116
|
// psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ2OTk1NCwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyLCJmYWlyUGxheURlZmluaXRpb24iOjExfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTMwNjI2NDcwMy52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.vRZS29srBfpGAVXiAixURviFJZel_Aq3jnC_V_bX7hk',
|
|
87
117
|
|
|
118
|
+
|
|
119
|
+
// 客户drm 17 win + chrome 无法播放
|
|
120
|
+
// appID: '1258708431', // 请传入点播账号的appID (必须)
|
|
121
|
+
// fileID: '5285890818299311045', // 请传入需要播放的视频filID (必须)
|
|
122
|
+
// psign:"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwY2ZnIjoiYWR2YW5jZURybVByZXNldCIsInVybEFjY2Vzc0luZm8iOnsidCI6IjY3QjRCOTQ0IiwidXMiOiIyZThiMDU5OGZkMzk0ZTIxYmNkNTg5YWNmMmM5Mzc4YiJ9LCJhcHBJZCI6MTI1ODcwODQzMSwiZXhwaXJlVGltZVN0YW1wIjoxNzM5ODk3MTU2LCJnaG9zdFdhdGVybWFya0luZm8iOnsidGV4dCI6IjE1OTAwNjcyMDk4LeWNkeW-ruWwj-W-kCJ9LCJjdXJyZW50VGltZVN0YW1wIjoxNzMyNjk3MTU2LCJmaWxlSWQiOiI1Mjg1ODkwODE4Mjk5MzExMDQ1In0.b78MaUVRASFUVchKdFNam2sv4JCoVWXYvZl02YJhGFE",
|
|
123
|
+
|
|
88
124
|
// 6. AES
|
|
89
125
|
fileID: '243791576943072647',
|
|
90
126
|
appID: '1306264703',
|
|
91
127
|
psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ2OTk3MSwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTMwNjI2NDcwMy52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.FOcmChHfrGY9tYCDn20MSQi-IqvQ9U_U6qLNgx9MhLg',
|
|
92
128
|
// licenseUrl: 'https://license-test.vod2.myqcloud.com/test/license/testV2/1300054025_1/v_cube.license',
|
|
93
129
|
// licenseUrl: 'https://license-test.vod2.myqcloud.com/test/license/testV2/1251132654_1/v_cube.license',
|
|
94
|
-
licenseUrl: 'https://
|
|
130
|
+
// licenseUrl: 'https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/vcube.license',
|
|
131
|
+
// 高级版 testmig-1306264703.cos.ap-guangzhou.myqcloud.com
|
|
132
|
+
// licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1306264703_1/v_cube.license',
|
|
133
|
+
// licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1256172159_1/v_cube.license',
|
|
134
|
+
// licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1306264703_1/v_cube.license',
|
|
135
|
+
licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1256172159_1/v_cube.license', // 通配符
|
|
136
|
+
controlBar: {
|
|
137
|
+
fullscreenRotate: true,
|
|
138
|
+
playbackRateMenuButton: false,
|
|
139
|
+
},
|
|
95
140
|
|
|
96
141
|
|
|
97
|
-
|
|
98
|
-
|
|
99
142
|
// 基础版
|
|
100
143
|
// https://license-test.vod2.myqcloud.com/test/license/testV2/1251132654_1/v_cube.license
|
|
101
|
-
|
|
102
144
|
// 高级版
|
|
103
145
|
// https://license-test.vod2.myqcloud.com/test/license/testV2/1251132654_1/v_cube.license
|
|
104
|
-
|
|
105
|
-
|
|
106
146
|
// licenseUrl: 'https://license-test.vod2.myqcloud.com/test/license/testV2/1300054025_1/v_cube.license',
|
|
107
|
-
|
|
108
147
|
// licenseUrl: 'https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/vcube.license',
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// fileID: '3270835010498441393',
|
|
112
|
-
// appID: '1500012967',
|
|
113
|
-
// psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjk2NywiZmlsZUlkIjoiMzI3MDgzNTAxMDQ5ODQ0MTM5MyIsImN1cnJlbnRUaW1lU3RhbXAiOjE2ODkwNjY4NzUsImNvbnRlbnRJbmZvIjp7ImF1ZGlvVmlkZW9UeXBlIjoiUHJvdGVjdGVkQWRhcHRpdmUiLCJkcm1BZGFwdGl2ZUluZm8iOnsid2lkZXZpbmVEZWZpbml0aW9uIjoxNDQ0Njc5fX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAxMjk2Ny52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFAifX0.kLW4YWXMoomnyzLwzMlLD2jJQnP2NbliQQ33vByC-DI',
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
148
|
+
|
|
117
149
|
// 7. widevine
|
|
118
150
|
// fileID: '243791576943072647',
|
|
119
151
|
// appID: '1306264703',
|
|
@@ -151,6 +183,7 @@
|
|
|
151
183
|
query: false,
|
|
152
184
|
},
|
|
153
185
|
},
|
|
186
|
+
|
|
154
187
|
//其他参数请在开发文档中查看
|
|
155
188
|
plugins: {
|
|
156
189
|
// SafeCheck: {
|
|
@@ -173,6 +206,8 @@
|
|
|
173
206
|
});
|
|
174
207
|
|
|
175
208
|
|
|
209
|
+
|
|
210
|
+
|
|
176
211
|
// setTimeout(() => {
|
|
177
212
|
// console.log('player ori', player);
|
|
178
213
|
// player.loadVideoByID({
|
|
@@ -214,6 +249,14 @@
|
|
|
214
249
|
console.log('pause');
|
|
215
250
|
});
|
|
216
251
|
|
|
252
|
+
player.on('error', function() {
|
|
253
|
+
console.log(1);
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
player.on('error', function() {
|
|
257
|
+
console.log(2);
|
|
258
|
+
});
|
|
259
|
+
|
|
217
260
|
|
|
218
261
|
player.on('licenseparsed', function(e) {
|
|
219
262
|
console.log('licenseparsed', e.data);
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no">
|
|
7
|
+
<title>腾讯云视频点播示例</title>
|
|
8
|
+
<link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.9.1/tcplayer.min.css" rel="stylesheet"/>
|
|
9
|
+
<script src="https://testmig-1306264703.cos.ap-guangzhou.myqcloud.com/wm/tcplayer.v4.9.1.min.js"></script>
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
<style>
|
|
13
|
+
html,body{
|
|
14
|
+
margin: 0;
|
|
15
|
+
padding: 0;
|
|
16
|
+
}
|
|
17
|
+
.tcplayer {
|
|
18
|
+
margin: 0 auto;
|
|
19
|
+
}
|
|
20
|
+
@media screen and (max-width: 640px) {
|
|
21
|
+
#player-container-id {
|
|
22
|
+
width: 100%;
|
|
23
|
+
height: 270px;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/* 设置logo在高分屏的显示样式 */
|
|
27
|
+
@media only screen and (min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 2) {
|
|
28
|
+
.tcp-logo-img {
|
|
29
|
+
width: 50%;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
</style>
|
|
33
|
+
</head>
|
|
34
|
+
<body>
|
|
35
|
+
<!-- 设置播放器容器 -->
|
|
36
|
+
<video id="player-container-id" preload="auto" width="640" height="360" playsinline webkit-playsinline>
|
|
37
|
+
</video>
|
|
38
|
+
|
|
39
|
+
<!--
|
|
40
|
+
注意事项:
|
|
41
|
+
* 播放器容器必须为 video 标签
|
|
42
|
+
* player-container-id 为播放器容器的ID,可自行设置
|
|
43
|
+
* 播放器区域的尺寸请按需设置,建议通过 css 进行设置,通过css可实现容器自适应等效果
|
|
44
|
+
* playsinline webkit-playsinline 这几个属性是为了在标准移动端浏览器不劫持视频播放的情况下实现行内播放,此处仅作示例,请按需使用
|
|
45
|
+
* 设置 x5-playsinline 属性会使用 X5 UI 的播放器
|
|
46
|
+
-->
|
|
47
|
+
<script>
|
|
48
|
+
|
|
49
|
+
var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
|
|
50
|
+
language: 'en',
|
|
51
|
+
playCGIHosts: ['playvideo.vodglcdn.com'],
|
|
52
|
+
// 6. AES
|
|
53
|
+
fileID: '243791576943072647',
|
|
54
|
+
appID: '1306264703',
|
|
55
|
+
psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ2OTk3MSwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTMwNjI2NDcwMy52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.FOcmChHfrGY9tYCDn20MSQi-IqvQ9U_U6qLNgx9MhLg',
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
</script>
|
|
59
|
+
</body>
|
|
60
|
+
</html>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
<!DOCTYPE html>
|
|
2
3
|
<html lang="en">
|
|
3
4
|
|
|
@@ -10,14 +11,9 @@
|
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
<link href="https://tcplayer.vcube.tencent.com/tcplayer/release/v4.8.0/tcplayer.min.css" rel="stylesheet" />
|
|
13
|
-
|
|
14
|
-
<script src="http://localhost:8080/libs/plugins/tcplayer-vr-plugin.1.0.0.js"></script>
|
|
15
|
-
<script src="http://localhost:8080/libs/tcpcrypto.1.0.0.js"></script> -->
|
|
16
|
-
<script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.8.0/tcplayer.v4.8.0.min.js"></script>
|
|
17
|
-
<!-- <script src="https://tcplayer.vcube.tencent.com/tcplayer-plugins/tcplayer.v4.8.0.min.js"></script> -->
|
|
18
|
-
|
|
14
|
+
<script src="https://tcplayer.vcube.tencent.com/tcplayer-plugins/tcplayer.v4.8.0.min.js"></script>
|
|
19
15
|
|
|
20
|
-
|
|
16
|
+
<script src="https://webrtc-demo.myqcloud.com/pull-sdk/js/vconsole.min.js"></script>
|
|
21
17
|
|
|
22
18
|
<style>
|
|
23
19
|
html,
|
|
@@ -71,15 +67,14 @@
|
|
|
71
67
|
-->
|
|
72
68
|
|
|
73
69
|
<script>
|
|
74
|
-
|
|
70
|
+
var vConsole = new VConsole();
|
|
75
71
|
var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
|
|
76
72
|
reportable: false,
|
|
77
73
|
|
|
78
74
|
// 12. vr
|
|
79
|
-
appID: '1500005692',
|
|
80
|
-
fileID: '243791580518143986',
|
|
81
|
-
psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAwNTY5MiwiZmlsZUlkIjoiMjQzNzkxNTgwNTE4MTQzOTg2IiwiY3VycmVudFRpbWVTdGFtcCI6MTY4MjMzNzM0NywiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAwNTY5Mi52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.g6lUJDbNfLmq8vAiC5dn1GlLTw5HT7dUDxSOCDsKALs',
|
|
82
|
-
licenseUrl: 'https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/vcube.license',
|
|
75
|
+
// appID: '1500005692',
|
|
76
|
+
// fileID: '243791580518143986',
|
|
77
|
+
// psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAwNTY5MiwiZmlsZUlkIjoiMjQzNzkxNTgwNTE4MTQzOTg2IiwiY3VycmVudFRpbWVTdGFtcCI6MTY4MjMzNzM0NywiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAwNTY5Mi52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.g6lUJDbNfLmq8vAiC5dn1GlLTw5HT7dUDxSOCDsKALs',
|
|
83
78
|
|
|
84
79
|
plugins: {
|
|
85
80
|
VR: {
|
|
@@ -92,13 +87,12 @@
|
|
|
92
87
|
// pitchRange: [-90, 90],
|
|
93
88
|
// fovRange: [30, 110],
|
|
94
89
|
},
|
|
95
|
-
SafeCheck: true,
|
|
96
90
|
}
|
|
97
91
|
});
|
|
98
92
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
93
|
+
player.ready(function() {
|
|
94
|
+
|
|
95
|
+
});
|
|
102
96
|
|
|
103
97
|
player.on('error', (err) => {
|
|
104
98
|
console.log('err', err);
|
|
@@ -106,6 +100,7 @@
|
|
|
106
100
|
|
|
107
101
|
// mp4 vr
|
|
108
102
|
// player.src('https://1305308197.vod2.myqcloud.com/a3557591vodger1305308197/f7270750243791579800235226/f0.mp4');
|
|
103
|
+
player.src('https://test2-kelive-vod.ke.com/6c9782ddvodcq1500000489/42eae20e1397757897057520142/playlist.f9.mp4')
|
|
109
104
|
|
|
110
105
|
document.getElementById('enterVR').addEventListener('click', function () {
|
|
111
106
|
player.plugins['VR'].enterVR();
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh">
|
|
3
|
+
<head>
|
|
4
|
+
<title>VePlayer</title>
|
|
5
|
+
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
|
|
6
|
+
<meta name="referrer" content="no-referrer">
|
|
7
|
+
<link rel="stylesheet" href="//lf-unpkg.volccdn.com/obj/vcloudfe/sdk/@volcengine/veplayer/1.9.5//index.min.css">
|
|
8
|
+
<script>window.gfdatav1={"env":"prod","idc":"lq","ver":"1.0.0.607","canary":0,"envName":"prod","region":"cn","runtime":"workerV2","extra":{"canaryType":null}}</script><script src="//lf-unpkg.volccdn.com/obj/vcloudfe/sdk/@volcengine/veplayer/1.9.5//index.min.js"></script>
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="mse"></div>
|
|
12
|
+
<script>
|
|
13
|
+
const playerSdk = new VePlayer({
|
|
14
|
+
id: 'mse',
|
|
15
|
+
lang: 'zh',
|
|
16
|
+
width: 640,
|
|
17
|
+
height: 360,
|
|
18
|
+
unionId: 'veplayer_demo',
|
|
19
|
+
getVideoByToken: {
|
|
20
|
+
playAuthToken: 'FileType为evideo的playAuthToken',
|
|
21
|
+
getDrmAuthToken: (playAuthIds, vid, unionInfo) => {
|
|
22
|
+
// 请求业务服务端生成 PrivateDrmAuthToken
|
|
23
|
+
const request = window.fetch(`https://video-server.demo.com/api/GetDrmKeyToken/?kid=${encodeURIComponent(playAuthIds)}&vid=${vid}&uid=${unionInfo}`);
|
|
24
|
+
return request.then(res => res.json()).then(data => data.result);
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
vodLogOpts: {
|
|
28
|
+
vtype: 'MP4',
|
|
29
|
+
tag: '版权视频',
|
|
30
|
+
drm_type: 1,
|
|
31
|
+
line_app_id: 348293,
|
|
32
|
+
line_user_id: 'veplayer_web_demo'
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
</script>
|
|
36
|
+
</body>
|
|
37
|
+
|
|
38
|
+
</html>
|
|
@@ -12,10 +12,12 @@
|
|
|
12
12
|
<script src="https://cdn.bootcdn.net/ajax/libs/vConsole/3.9.1/vconsole.min.js"></script>
|
|
13
13
|
|
|
14
14
|
<script src="https://imgcache.qq.com/open/qcloud/video/tcplayer/libs/hls.min.0.13.2m.js"></script>
|
|
15
|
+
<!-- <script src="https://hlsjs.video-dev.org/dist/hls.js"></script> -->
|
|
15
16
|
<!-- <script src="https://cloudcache.tencent-cloud.com/open/qcloud/live/webrtc/js/TXLivePlayer-1.1.0.min.js"></script> -->
|
|
16
17
|
<script src="https://wliap-1306264703.cos.ap-nanjing.myqcloud.com/TXLivePlayer-1.2.0.min.js "></script>
|
|
17
18
|
<!-- 引入播放器 js 文件 -->
|
|
18
|
-
<script src="../../../dist/tcplayer.v4.
|
|
19
|
+
<script src="../../../dist/tcplayer.v4.7.2.js"></script>
|
|
20
|
+
<!-- <script src="https://static.futunn.com/nnlive/lib/js/tcplayer.v4.5.2.min-d98d38ad6c0d398de78b6ad4ae40ba27.js"></script> -->
|
|
19
21
|
<!-- <script src="https://web.sdk.cloud.tencent.cn/player/tcplayer/release/v4.5.3/tcplayer.v4.5.3.min.js"></script> -->
|
|
20
22
|
|
|
21
23
|
<!-- 示例 CSS 样式可自行删除 -->
|
|
@@ -80,9 +82,8 @@ src="https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813
|
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
var player = TCPlayer('player-container-id', {
|
|
83
|
-
autoplay: false,
|
|
84
85
|
// 封面图
|
|
85
|
-
// poster:'https://1256993030.vod2.myqcloud.com/20f8b585vodgzp1256993030/0/player/5285890781393938051.png',
|
|
86
|
+
// poster: 'https://1256993030.vod2.myqcloud.com/20f8b585vodgzp1256993030/0/player/5285890781393938051.png',
|
|
86
87
|
sources: [/* {
|
|
87
88
|
// 快直播地址
|
|
88
89
|
src: 'webrtc://5664.liveplay.myqcloud.com/live/5664_harchar1?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb'
|
|
@@ -91,7 +92,9 @@ src="https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813
|
|
|
91
92
|
src: 'https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb'
|
|
92
93
|
}, */{
|
|
93
94
|
// src: 'https://1256993030.vod2.myqcloud.com/d520582dvodtransgzp1256993030/7732bd367447398157015849771/v.f40.mp4'
|
|
94
|
-
src: 'https://liveplay.wemeet.tencent.com/trtc_1400143280/stream_18219061098254429397_648623388.m3u8?txTime=62da4bb7&txSecret=BEDDE265B11E30308A254C7E7AD24095'
|
|
95
|
+
// src: 'https://liveplay.wemeet.tencent.com/trtc_1400143280/stream_18219061098254429397_648623388.m3u8?txTime=62da4bb7&txSecret=BEDDE265B11E30308A254C7E7AD24095'
|
|
96
|
+
// src: 'https://liveplay.futunn.com/live/3159_e8c6d97e97531cd9e552d3805e3b63bb.m3u8?txWMID=173540'
|
|
97
|
+
src: 'https://liveplaydemo.qcloud.com/trtc_1400704311/1400704311_666004_666004_0_main.m3u8?txSecret=6d36db21b33795c07f0de8b283d9f128&txTime=643FD606'
|
|
95
98
|
// src: 'https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb'
|
|
96
99
|
}],
|
|
97
100
|
// 可配置参数说明 https://cloud.tencent.com/document/product/881/30820#options-.E5.8F.82.E6.95.B0.E5.88.97.E8.A1.A8
|
|
@@ -106,7 +109,8 @@ src="https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813
|
|
|
106
109
|
},
|
|
107
110
|
hlsConfig: {
|
|
108
111
|
// 参考 hls.js config 说明 https://github.com/video-dev/hls.js/blob/f3c6b2712e63ee6ed32957e4035254856d24605e/docs/API.md#fine-tuning
|
|
109
|
-
}
|
|
112
|
+
},
|
|
113
|
+
autoplay: true
|
|
110
114
|
});
|
|
111
115
|
|
|
112
116
|
player.on('ready', function () {
|
|
@@ -162,10 +166,19 @@ src="https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813
|
|
|
162
166
|
}
|
|
163
167
|
});
|
|
164
168
|
});
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
169
|
+
// 规避 hls.js 偶现seeking后不触发seeked 的问题
|
|
170
|
+
let timeout
|
|
171
|
+
player.one('seeking', (event) => {
|
|
172
|
+
console.log('on seek');
|
|
173
|
+
timeout = setTimeout(function () {
|
|
174
|
+
player.currentTime(Math.ceil(player.currentTime()));
|
|
175
|
+
}, 500);
|
|
176
|
+
player.one('seeked', (event) => {
|
|
177
|
+
console.log('on seeked', timeout);
|
|
178
|
+
clearTimeout(timeout);
|
|
179
|
+
})
|
|
168
180
|
})
|
|
181
|
+
|
|
169
182
|
function playFail() {
|
|
170
183
|
if (player.src().indexOf('webrtc://') === 0) {
|
|
171
184
|
player.tech(true).webrtcProvider && player.tech(true).webrtcProvider.onPlayEvent(-2005);
|
|
@@ -71,10 +71,10 @@
|
|
|
71
71
|
enableAbr: false,
|
|
72
72
|
// 模板名对应的label名
|
|
73
73
|
abrLabels: {
|
|
74
|
-
d1080p: 'FHD1',
|
|
75
|
-
d540p: 'HD2',
|
|
76
|
-
d360p: 'SD3',
|
|
77
|
-
auto: 'AUTO4',
|
|
74
|
+
// d1080p: 'FHD1',
|
|
75
|
+
// d540p: 'HD2',
|
|
76
|
+
// d360p: 'SD3',
|
|
77
|
+
// auto: 'AUTO4',
|
|
78
78
|
},
|
|
79
79
|
// 参考 快直播 config 说明
|
|
80
80
|
},
|
|
@@ -109,6 +109,55 @@
|
|
|
109
109
|
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
+
// player.on('webrtcevent', function(event) {
|
|
113
|
+
// console.log('webrtcEvent', event);
|
|
114
|
+
// });
|
|
115
|
+
|
|
116
|
+
player.on('webrtcsei', function(event) {
|
|
117
|
+
console.log('event', event);
|
|
118
|
+
});
|
|
119
|
+
player.on('webrtcfallback', function(event) {
|
|
120
|
+
console.log('webrtcfallback', event);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
player.on('debug', function(event, data) {
|
|
124
|
+
console.log('debug', event, data);
|
|
125
|
+
});
|
|
126
|
+
player.on('webrtcstats', function(data) {
|
|
127
|
+
|
|
128
|
+
try {
|
|
129
|
+
document.getElementById('rate').innerHTML = data.data.video.frameWidth + 'x' + data.data.video.frameHeight;
|
|
130
|
+
} catch (e) {
|
|
131
|
+
console.log('e', e.message);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
// player.on('webrtcevent', function(event) {
|
|
137
|
+
// console.log('webrtcEvent', event);
|
|
138
|
+
// });
|
|
139
|
+
// player.on('webrtcfallback', function(event) {
|
|
140
|
+
// console.log('webrtcfallback', event);
|
|
141
|
+
// });
|
|
142
|
+
|
|
143
|
+
// player.on('webrtceventtest', function(event) {
|
|
144
|
+
// console.log('webrtceventtest', event);
|
|
145
|
+
// })
|
|
146
|
+
|
|
147
|
+
// player.on('debug', function(event, data) {
|
|
148
|
+
// console.log('debug', event, data);
|
|
149
|
+
// });
|
|
150
|
+
// player.on('webrtcstats', function(data) {
|
|
151
|
+
|
|
152
|
+
// try {
|
|
153
|
+
// document.getElementById('rate').innerHTML = data.data.video.frameWidth + 'x' + data.data.video.frameHeight;
|
|
154
|
+
// } catch (e) {
|
|
155
|
+
// console.log('e', e.message);
|
|
156
|
+
// }
|
|
157
|
+
|
|
158
|
+
// // console.log('data', event, data);
|
|
159
|
+
// });
|
|
160
|
+
|
|
112
161
|
</script>
|
|
113
162
|
</body>
|
|
114
163
|
</html>
|
|
@@ -62,6 +62,7 @@
|
|
|
62
62
|
src: 'https://5664.liveplay.myqcloud.com/live/5664_harchar1.m3u8?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb'
|
|
63
63
|
}],
|
|
64
64
|
|
|
65
|
+
licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1306264703_1/v_cube.license',
|
|
65
66
|
webrtcConfig: {
|
|
66
67
|
receiveSEI: true,
|
|
67
68
|
},
|
|
@@ -85,6 +86,10 @@
|
|
|
85
86
|
console.log('webrtcsei', event.data);
|
|
86
87
|
});
|
|
87
88
|
|
|
89
|
+
player.on('webrtcstats', function(event) {
|
|
90
|
+
console.log('webrtcstats', event.data);
|
|
91
|
+
});
|
|
92
|
+
|
|
88
93
|
</script>
|
|
89
94
|
</body>
|
|
90
95
|
</html>
|
package/dist/lang/zh-CN.js
CHANGED
|
@@ -99,6 +99,7 @@ TCPlayer.addLanguage("zh-CN",{
|
|
|
99
99
|
"Param pcfg is not unique.": "pcfg 不唯一。",
|
|
100
100
|
"The license has expired. Please check whether the expiration time setting is reasonable.": "license 过期,请检查过期时间设置是否合理。",
|
|
101
101
|
"Did not find an adaptive stream that can be played.": "没有找到可以播放的自适应码流,<a href='https://cloud.tencent.com/document/product/266/34071' style='color: white;' target='_blank'>查看文档</a>。",
|
|
102
|
+
"Failed to load hls.js file": "hls.js 文件加载失败",
|
|
102
103
|
"Invalid request format, please check the request format.": "请求格式不合法,请检查请求格式。",
|
|
103
104
|
"AppID is not exist, Please check if the AppID is correct.": "AppID 不存在,请检查 AppID 是否正确。",
|
|
104
105
|
"Without anti-leech information.": "没带防盗链检测。",
|