tcplayer.js 5.0.2-beta.2 → 5.1.0-beta.2

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.
@@ -0,0 +1,44 @@
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>TCPlayer fairplay Demo </title>
8
+ <link href="//imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.css" rel="stylesheet">
9
+ <script src="./tcplayer.v5.1.0.min.js"></script>
10
+ <style>
11
+ html,body{
12
+ margin: 0;
13
+ padding: 0;
14
+ }
15
+ .tcplayer {
16
+ margin: 0 auto;
17
+ }
18
+ </style>
19
+ </head>
20
+ <body>
21
+
22
+ <video id="player-container-id" preload="auto" width="640" height="360" playsinline webkit-playsinline>
23
+ </video>
24
+ <script>
25
+ var player = TCPlayer('player-container-id', {
26
+ sources: [{
27
+ src: 'https://1306038592.ap-singapore.streampackage.srclivepull.myqcloud.com/v1/018c152910971ea540e60351d9a5/018c15294d8f1ea506950357396b/main.m3u8',
28
+ type: 'application/x-mpegURL',
29
+ keySystems: {
30
+ 'com.apple.fps.1_0': {
31
+ certificateUri: 'https://68789test.liveplay.myqcloud.com/encrypt_hls_demo/sdmc_fairplay.cer',
32
+ licenseUri: 'https://prod.multidrm.tv/getlicense?token=eyJ1aWQiOiAiNjcyOTk5NjU4MDU1ODQ1NDYwOTMiLCAic2VjcmV0X2lkIjogIjk2MlZZMTQwWllWOVFTOUEwN002NzhZUlc5RVU0VzQ0IiwgImNpZCI6ICI2NTY1QUM0RDAwMDA4QzIwMTIwMCIsICJ0aW1lc3RhbXAiOiAxNzQyOTU2ODY0LCAiZHJtX3N5c3RlbSI6ICJGQUlSUExBWSIsICJoYXNoIjogIlJiUUE2UnV3Q1loS1AvenVjaG1Gd1ZZSjFGclBuOXBkNTRZK2kyeDhXckU9In0='
33
+ }
34
+ }
35
+ }],
36
+ licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1306264703_1/v_cube.license',
37
+ plugins: {
38
+ DRM: {}
39
+ },
40
+ });
41
+
42
+ </script>
43
+ </body>
44
+ </html>
@@ -94,26 +94,13 @@
94
94
  licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1306264703_1/v_cube.license',
95
95
 
96
96
 
97
-
98
-
99
97
  // 基础版
100
98
  // https://license-test.vod2.myqcloud.com/test/license/testV2/1251132654_1/v_cube.license
101
-
102
99
  // 高级版
103
100
  // https://license-test.vod2.myqcloud.com/test/license/testV2/1251132654_1/v_cube.license
104
-
105
-
106
101
  // licenseUrl: 'https://license-test.vod2.myqcloud.com/test/license/testV2/1300054025_1/v_cube.license',
107
-
108
102
  // 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
-
103
+
117
104
  // 7. widevine
118
105
  // fileID: '243791576943072647',
119
106
  // appID: '1306264703',
@@ -0,0 +1,61 @@
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
+ <script src="http://localhost:8080/dist/tcplayer.v5.1.0.js"></script>
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
+ licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1306264703_1/v_cube.license',
57
+ });
58
+
59
+ </script>
60
+ </body>
61
+ </html>
@@ -94,9 +94,9 @@
94
94
  // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjI5MywiZmlsZUlkIjoiMzg3NzAyMjk5NjU4MDE3NTQ0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDYxMTUxMCwicGNmZyI6IndpZGV2aW5lZGFzaCIsInVybEFjY2Vzc0luZm8iOnt9LCJkcm1MaWNlbnNlSW5mbyI6e319.AmJh4Nm3kZt_sQ-5CZ-yZLkYEnGoIkvulzYuBRFlGd0',
95
95
 
96
96
  // fairplay hls
97
- appID: '1500012293', // 请传入点播账号的appID 必须
98
- fileID: '387702299658017544',
99
- psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjI5MywiZmlsZUlkIjoiMzg3NzAyMjk5NjU4MDE3NTQ0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDYxMTUxMCwicGNmZyI6ImZhaXJwbGF5aGxzIiwidXJsQWNjZXNzSW5mbyI6e30sImRybUxpY2Vuc2VJbmZvIjp7fX0.O4P15WUAN3i5bAeiJTSus9RFvFC9sVZzA_DxiEnFlJ4',
97
+ // appID: '1500012293', // 请传入点播账号的appID 必须
98
+ // fileID: '387702299658017544',
99
+ // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjI5MywiZmlsZUlkIjoiMzg3NzAyMjk5NjU4MDE3NTQ0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDYxMTUxMCwicGNmZyI6ImZhaXJwbGF5aGxzIiwidXJsQWNjZXNzSW5mbyI6e30sImRybUxpY2Vuc2VJbmZvIjp7fX0.O4P15WUAN3i5bAeiJTSus9RFvFC9sVZzA_DxiEnFlJ4',
100
100
 
101
101
  // alldrm
102
102
  // appID: '1500012293', // 请传入点播账号的appID 必须
@@ -106,9 +106,10 @@
106
106
  // fileID: "387702296829661431",
107
107
  // appID: "1400177511",
108
108
  // psign:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTQwMDE3NzUxMSwiZmlsZUlkIjoiMzg3NzAyMjk2ODI5NjYxNDMxIiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDUzNzY4OSwidXJsQWNjZXNzSW5mbyI6e30sImRybUxpY2Vuc2VJbmZvIjp7fX0.zG9mFJdZfFH5NhvLVvc1BlEhAiRLL0u2BhFIcoSOmH4",
109
+ sources: 'https://1306038592.ap-singapore.streampackage.srclivepull.myqcloud.com/v1/018c152910971ea540e60351d9a5/018c15294d8f1ea506950357396b/main.m3u8',
109
110
  plugins: {
110
111
  DRM: {
111
- certificateUri: 'https://cert.drm.vod-qcloud.com/cert/v1/ca19f2033ba3c5c0350ec6cba3df579f/fairplay.cer',
112
+ certificateUri: 'https://68789test.liveplay.myqcloud.com/encrypt_hls_demo/sdmc_fairplay.cer',
112
113
  },
113
114
  ProgressMarker: true,
114
115
  ContextMenu: {
@@ -7,25 +7,9 @@
7
7
  <title>腾讯云视频点播示例</title>
8
8
  <!-- 引入播放器 css 文件 -->
9
9
  <link href="//imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.min.css" rel="stylesheet">
10
- <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/vconsole.min.3.3.0.js"></script>
11
- <!-- 如需在IE8、9浏览器中初始化播放器,浏览器需支持Flash并在页面中引入 -->
12
- <!--[if lt IE 9]>
13
- <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/ie8/videojs-ie8.js"></script>
14
- <![endif]-->
15
- <!-- 如果需要在 Chrome Firefox 等现代浏览器中通过H5播放hls Dash,需要引入 hls.js dash.js -->
16
- <!-- <script src="https://testmig-1306264703.cos.ap-guangzhou.myqcloud.com/wm/hls.js"></script> -->
17
-
18
- <!-- <script src="https://hls-js.netlify.app/dist/hls.js"></script> -->
19
-
20
- <script src="https://testmig-1306264703.cos.ap-guangzhou.myqcloud.com/wm/hls.js"></script>
21
-
22
-
23
- <!-- <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/hls.min.0.13.2m.js"></script> -->
24
-
25
- <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/dash.all.min.2.9.3.js"></script>
26
10
  <!-- 引入播放器 js 文件 -->
27
- <!-- <script src="http://localhost:8081/dist/tcplayer.v4.5.1.js"></script> -->
28
- <script src="https://testmig-1306264703.cos.ap-guangzhou.myqcloud.com/drm3/tcplayer.v4.5.1.js"></script>
11
+ <script src="https://hlsjs.video-dev.org/dist/hls.js"></script>
12
+ <script src="http://localhost:8082/dist/tcplayer.v5.1.0.js"></script>
29
13
 
30
14
  <!-- 示例 CSS 样式可自行删除 -->
31
15
  <style>
@@ -73,93 +57,18 @@
73
57
  * 设置 x5-playsinline 属性会使用 X5 UI 的播放器
74
58
  -->
75
59
  <script>
76
- var vConsole = new VConsole();
77
60
 
78
61
  var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
79
-
80
- // widevine hls 1
81
- appID: '1500012293', // 请传入点播账号的appID 必须
82
- fileID: '387702299520678240', // 请传入需要播放的视频filID 必须
83
- psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjI5MywiZmlsZUlkIjoiMzg3NzAyMjk5NTIwNjc4MjQwIiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDQ0MTg2NCwicGNmZyI6IndpZGV2aW5laGxzIiwidXJsQWNjZXNzSW5mbyI6e30sImRybUxpY2Vuc2VJbmZvIjp7fX0.0IKncrqPTdnuVBFMD4hGoXyTlrOwSlw8x7yW4uIEmzE',
84
- //其他参数请在开发文档中查看
85
-
86
- // widevine hls 2
87
- // appID: '1500012293', // 请传入点播账号的appID 必须
88
- // fileID: '387702299658017544',
89
- // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjI5MywiZmlsZUlkIjoiMzg3NzAyMjk5NjU4MDE3NTQ0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDYxMTUxMCwicGNmZyI6IndpZGV2aW5laGxzIiwidXJsQWNjZXNzSW5mbyI6e30sImRybUxpY2Vuc2VJbmZvIjp7fX0.zAh5g8BmTYtosXnM642uqcSSwSmtUq2npfFZU5VI4k8',
90
-
91
- // widevine dash
92
- // appID: '1500012293', // 请传入点播账号的appID 必须
93
- // fileID: '387702299658017544',
94
- // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjI5MywiZmlsZUlkIjoiMzg3NzAyMjk5NjU4MDE3NTQ0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDYxMTUxMCwicGNmZyI6IndpZGV2aW5lZGFzaCIsInVybEFjY2Vzc0luZm8iOnt9LCJkcm1MaWNlbnNlSW5mbyI6e319.AmJh4Nm3kZt_sQ-5CZ-yZLkYEnGoIkvulzYuBRFlGd0',
95
-
96
- // fairplay hls
97
- // appID: '1500012293', // 请传入点播账号的appID 必须
98
- // fileID: '387702299658017544',
99
- // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjI5MywiZmlsZUlkIjoiMzg3NzAyMjk5NjU4MDE3NTQ0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDYxMTUxMCwicGNmZyI6ImZhaXJwbGF5aGxzIiwidXJsQWNjZXNzSW5mbyI6e30sImRybUxpY2Vuc2VJbmZvIjp7fX0.O4P15WUAN3i5bAeiJTSus9RFvFC9sVZzA_DxiEnFlJ4',
100
-
101
- // alldrm
102
- // appID: '1500012293', // 请传入点播账号的appID 必须
103
- // fileID: '387702299658017544',
104
- // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjI5MywiZmlsZUlkIjoiMzg3NzAyMjk5NjU4MDE3NTQ0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDYxMTUxMCwicGNmZyI6ImFsbGRybSIsInVybEFjY2Vzc0luZm8iOnt9LCJkcm1MaWNlbnNlSW5mbyI6e319.3ki3MGF6pjc7B5eImKOYVNPdvaLh057qsx300wwK-oA',
105
-
106
- // fileID: "387702296829661431",
107
- // appID: "1400177511",
108
- // psign:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTQwMDE3NzUxMSwiZmlsZUlkIjoiMzg3NzAyMjk2ODI5NjYxNDMxIiwiY3VycmVudFRpbWVTdGFtcCI6MTY1MDUzNzY4OSwidXJsQWNjZXNzSW5mbyI6e30sImRybUxpY2Vuc2VJbmZvIjp7fX0.zG9mFJdZfFH5NhvLVvc1BlEhAiRLL0u2BhFIcoSOmH4",
109
- plugins: {
110
- // DRM: {
111
- // certificateUri: 'https://cert.drm.vod-qcloud.com/cert/v1/ca19f2033ba3c5c0350ec6cba3df579f/fairplay.cer',
112
- // },
113
- ProgressMarker: true,
114
- ContextMenu: {
115
- statistic: true,
116
- levelSwitch: {
117
- open: true, // 打开切换提示
118
- // switchingText: '开始', // 开始切换时文案
119
- // switchedText: '成功', // 切换成功时文案
120
- // switchErrorText: '失败', // 切换失败时文案
121
- }
122
- }
123
- }
62
+ sources: 'https://drmtest.accelerationcdn.com/live/TestDrm_tWidevine.m3u8',
63
+ hlsConfig: {
64
+ widevineLicenseUrl: 'https://68789test.liveplay.myqcloud.com/drm_key/widevine/',
65
+ },
66
+ licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1306264703_1/v_cube.license',
67
+ // plugins: {
68
+ // DRM: {}
69
+ // }
124
70
  });
125
71
 
126
- player.on('ended', function() {
127
- console.log('ended');
128
- })
129
-
130
- // var vConsole = new VConsole();
131
-
132
- // var player,
133
- // fileID = '5285890787511552106',
134
- // appID = '1256468886',
135
- // playDefinition = '20',
136
- // request = new XMLHttpRequest();
137
- // /**
138
- // * 播放DRM内容有一下两个步骤
139
- // * 1. 获取播放 DRM 内容用到的 token
140
- // * 2. 将准备好的参数传递给播放器进行初始化
141
- // */
142
- // request.addEventListener('load', function (event) {
143
- // player = TCPlayer('player-container-id', {
144
- // appID: appID, // 请传入点播账号的appID 必须
145
- // fileID: fileID // 请传入需要播放的视频filID 必须
146
- // // ,playDefinition: playDefinition // 请传入播放模版 必须 关于播放模版请看 **链接**
147
- // ,Html5: {
148
- // nativeTextTracks: false // 在 safari 开启支持 webvtt 解析
149
- // },
150
- // plugins: {
151
- // // DRM: {
152
- // // token: event.target.response, // 传入您的后台服务签发的 token
153
- // // certificateUri: 'https://5000.drm.myqcloud.com/huaxida_test/fairplay.cer', // 传入 Fairplay 播放需要用到的证书地址
154
- // // },
155
- // ProgressMarker: {},
156
- // }
157
- // });
158
-
159
- // }, false);
160
- // request.open('GET', 'https://demo.vod2.myqcloud.com/drm/gettoken?fileId='+fileID+'&appId='+appID, true); // 去您的 token 签发服务地址获取token
161
- // request.send();
162
-
163
72
  </script>
164
73
  </body>
165
74
  </html>
@@ -8,12 +8,12 @@
8
8
  <link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.6.0/tcplayer.min.css" rel="stylesheet"/>
9
9
 
10
10
  <!--播放器脚本文件-->
11
- <script src="https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/hls.min.1.1.7.js"></script>
12
- <!-- <script src="http://10.21.39.55:8082/dist/hls.js"></script> -->
11
+ <!-- <script src="https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/hls.min.1.1.7.js"></script> -->
12
+ <script src="http://10.21.39.55:8080/libs/hls.min.1.1.7.js"></script>
13
13
 
14
14
 
15
- <script src="https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/tcplayer.v4.8.0.min.js"></script>
16
- <!-- <script src="http://10.21.39.55:8080/dist/tcplayer.v4.8.0.js"></script> -->
15
+ <!-- <script src="https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/tcplayer.v4.8.0.min.js"></script> -->
16
+ <script src="http://10.21.39.55:8080/dist/tcplayer.v4.8.0.js"></script>
17
17
  <style>
18
18
  html,body{
19
19
  margin: 0;
@@ -55,6 +55,10 @@
55
55
  // 是否开启显示pdt时间
56
56
  // PDTDisplay: false,
57
57
  },
58
+
59
+ plugins: {
60
+ // PDT: true,
61
+ }
58
62
  //其他参数请在开发文档中查看
59
63
  });
60
64
 
@@ -0,0 +1,150 @@
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"
7
+ content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no">
8
+ <title>Tcplayer Demo</title>
9
+ <link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.9.0/tcplayer.min.css" rel="stylesheet">
10
+ <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.9.0/tcplayer.v4.9.0.min.js"></script>
11
+ <style>
12
+ html, body {
13
+ margin: 0;
14
+ padding: 0;
15
+ }
16
+ .tcplayer {
17
+ margin: 0 auto;
18
+ }
19
+
20
+ #player-container-id {
21
+ width: 640px;
22
+ height: 360px;
23
+ }
24
+
25
+ .tip-node {
26
+ display: flex;
27
+ align-items: center;
28
+ position: absolute;
29
+ bottom: 5em;
30
+ left: 1em;
31
+ background: rgba(0, 0, 0, 0.4);
32
+ border-radius: 4px;
33
+ padding: 5px 10px;
34
+
35
+ }
36
+
37
+ .tip-icon-close {
38
+ width: 14px;
39
+ height: 14px;
40
+ display: inline-block;
41
+ margin-left: 10px;
42
+ background-image: url(https://tcplayer-1306264703.cos.ap-nanjing.myqcloud.com/picture/icon-close.png);
43
+ background-size: cover;
44
+ cursor: pointer;
45
+ }
46
+
47
+ .page-node {
48
+ position: absolute;
49
+ width: 100%;
50
+ height: 100%;
51
+ background: #000;
52
+ z-index: 999;
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ }
57
+
58
+ .page-content {
59
+ text-align: center;
60
+ }
61
+
62
+ .page-content a{
63
+ display: flex;
64
+ width: 120px;
65
+ height: 28px;
66
+ border-radius: 14px;
67
+ color: #663d00;
68
+ background-image: linear-gradient(90deg,#ffdf89 0,#f2ca5b 100%);
69
+ align-items: center;
70
+ justify-content: center;
71
+ text-decoration: none;
72
+ margin: 0 auto;
73
+ }
74
+
75
+ .page-content #replay-btn::before {
76
+ content: '';
77
+ width: 12px;
78
+ height: 12px;
79
+ display: inline-block;
80
+ vertical-align: middle;
81
+ margin-right: 5px;
82
+ background: url(https://tcplayer-1306264703.cos.ap-nanjing.myqcloud.com/picture/icon-replay.png);
83
+ background-size: contain;
84
+ }
85
+
86
+ .page-content #replay-btn {
87
+ margin: 10px auto 0;
88
+ }
89
+
90
+ @media screen and (max-width: 480px) {
91
+ #player-container-id {
92
+ width: 100%;
93
+ height: 240px;
94
+ }
95
+ }
96
+
97
+
98
+ </style>
99
+ </head>
100
+ <body>
101
+
102
+ <video id="player-container-id" preload="auto" playsinline webkit-playsinline>
103
+ </video>
104
+
105
+ <script>
106
+ var player = TCPlayer("player-container-id", {
107
+ fileID: "3701925924406245944",
108
+ appID: "1500006438",
109
+ psign: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAwNjQzOCwiZmlsZUlkIjoiMzcwMTkyNTkyNDQwNjI0NTk0NCIsImN1cnJlbnRUaW1lU3RhbXAiOjE2MzE3ODEyMzYsImV4cGlyZVRpbWVTdGFtcCI6MTkxNTg2NDQxNCwicGNmZyI6ImJhc2ljRHJtUHJlc2V0IiwidXJsQWNjZXNzSW5mbyI6eyJleHBlciI6MzAsInQiOiIxOTE1ODY0NDE0In19.F9gD5SidAoQPH4rDz4dr9-Z6DpoojOkHX_23kZPJ72A",
110
+ autoplay: false,
111
+ });
112
+
113
+ player.one("playing", function() {
114
+ var tipNode = document.createElement("div");
115
+ tipNode.innerHTML = "可试看30秒,开通 VIP 观看完整视频";
116
+ tipNode.className = "tip-node";
117
+
118
+ var tipIconClose = document.createElement("i");
119
+ tipIconClose.className = "tip-icon-close";
120
+ tipIconClose.onclick = function() {
121
+ tipNode.remove();
122
+ }
123
+
124
+ tipNode.appendChild(tipIconClose);
125
+ player.el_.appendChild(tipNode);
126
+ });
127
+
128
+
129
+ player.on("ended", function() {
130
+ var pageNode = document.createElement("div");
131
+ pageNode.className = "page-node";
132
+
133
+ pageNode.innerHTML = `<div class="page-content">
134
+ <p>试看结束,VIP会员可观看完整视频</p>
135
+ <a href="https://cloud.tencent.com/document/product/881/30818" target="_blank">开通VIP会员</a>
136
+ <button id="replay-btn">重新试看</button>
137
+ </div>
138
+ `;
139
+
140
+ player.el_.appendChild(pageNode);
141
+
142
+ document.querySelector('#replay-btn').onclick = function() {
143
+ player.play();
144
+ pageNode.remove();
145
+ };
146
+ });
147
+
148
+ </script>
149
+ </body>
150
+ </html>
@@ -11,13 +11,14 @@
11
11
 
12
12
  <link href="https://tcplayer.vcube.tencent.com/tcplayer/release/v4.8.0/tcplayer.min.css" rel="stylesheet" />
13
13
  <!-- <script src="http://localhost:8080/libs/plugins/tcplayer-safe-plugin.1.0.0.js"></script>
14
- <script src="http://localhost:8080/libs/plugins/tcplayer-vr-plugin.1.0.0.js"></script>
14
+
15
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>
16
+ <script src="https://tcplayer-1306264703.cos.ap-nanjing.myqcloud.com/vod/tcplayer-vr-plugin.1.0.0.js"></script>
17
+ <script src="https://tcplayer-1306264703.cos.ap-nanjing.myqcloud.com/vod/tcplayer.v5.1.0.min.js"></script>
17
18
  <!-- <script src="https://tcplayer.vcube.tencent.com/tcplayer-plugins/tcplayer.v4.8.0.min.js"></script> -->
18
19
 
19
20
 
20
- <!-- <script src="https://webrtc-demo.myqcloud.com/pull-sdk/js/vconsole.min.js"></script> -->
21
+ <script src="https://webrtc-demo.myqcloud.com/pull-sdk/js/vconsole.min.js"></script>
21
22
 
22
23
  <style>
23
24
  html,
@@ -71,16 +72,20 @@
71
72
  -->
72
73
 
73
74
  <script>
74
- // var vConsole = new VConsole();
75
+ var vConsole = new VConsole();
75
76
  var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
76
77
  reportable: false,
77
78
 
78
79
  // 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',
80
+ // appID: '1500005692',
81
+ // fileID: '243791580518143986',
82
+ // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAwNTY5MiwiZmlsZUlkIjoiMjQzNzkxNTgwNTE4MTQzOTg2IiwiY3VycmVudFRpbWVTdGFtcCI6MTY4MjMzNzM0NywiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAwNTY5Mi52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.g6lUJDbNfLmq8vAiC5dn1GlLTw5HT7dUDxSOCDsKALs',
83
+ licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1306264703_1/v_cube.license',
84
+
83
85
 
86
+ // hlsConfig: {
87
+ // skipHlsJs: true
88
+ // },
84
89
  plugins: {
85
90
  VR: {
86
91
  // isEnableController: true,
@@ -92,7 +97,7 @@
92
97
  // pitchRange: [-90, 90],
93
98
  // fovRange: [30, 110],
94
99
  },
95
- SafeCheck: true,
100
+ // SafeCheck: true,
96
101
  }
97
102
  });
98
103
 
@@ -104,9 +109,17 @@
104
109
  console.log('err', err);
105
110
  });
106
111
 
112
+
113
+ player.on('licenseparsed', function(e) {
114
+ console.log('licenseparsed', e.data);
115
+ });
116
+
107
117
  // mp4 vr
108
118
  // player.src('https://1305308197.vod2.myqcloud.com/a3557591vodger1305308197/f7270750243791579800235226/f0.mp4');
109
-
119
+ // player.src('https://vod2-nflive.southcn.com/6c9b613dvodcq1500007626/f45a5cc61397757889197905765/playlist_eof.m3u8');
120
+ player.src('https://1500005692.vod2.myqcloud.com/6c9a495evodcq1500005692/eb40e9721397757889200085248/wRaxejOnVNwA.mp4');
121
+ // player.src('https://1500005692.vod2.myqcloud.com/43843706vodtranscq1500005692/eb40e9721397757889200085248/adp.10.m3u8');
122
+ // player.src('https://bitmovin-a.akamaihd.net/content/playhouse-vr/progressive.mp4');
110
123
  document.getElementById('enterVR').addEventListener('click', function () {
111
124
  player.plugins['VR'].enterVR();
112
125
  });
@@ -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.5.3.js"></script>
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
- player.one('seeking', () => {
166
- console.log('one time');
167
- // player.currentTime(Math.ceil(player.currentTime()));
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);