tcplayer.js 4.9.0-beta.2 → 4.9.1

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.
@@ -7,11 +7,15 @@
7
7
  <title>腾讯云视频点播示例</title>
8
8
  <link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.6.0/tcplayer.min.css" rel="stylesheet"/>
9
9
 
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:8082/dist/hls.js"></script> -->
10
12
  <!--播放器脚本文件-->
13
+ <!-- <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.8.0/tcplayer.v4.8.0.min.js"></script> -->
14
+ <!-- <script src="https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/tcplayer.v4.8.0.js"></script> -->
15
+ <!-- <script src="https://webrtc-demo.myqcloud.com/pull-sdk/js/vconsole.min.js"></script> -->
16
+ <script src="http://localhost:8081/dist/tcplayer.v4.9.1.js"></script>
17
+
11
18
 
12
- <!-- <script src="http://10.21.39.55:8080/libs/hls.min.1.1.7.js"></script> -->
13
- <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.9.0/tcplayer.v4.9.0.min.js"></script>
14
- <!-- <script src="http://10.21.39.55:8080/dist/tcplayer.v4.8.0.min.js"></script> -->
15
19
 
16
20
  <style>
17
21
  html,body{
@@ -49,8 +53,11 @@
49
53
  * 设置 x5-playsinline 属性会使用 X5 UI 的播放器
50
54
  -->
51
55
  <script>
56
+ // var vConsole = new VConsole();
57
+ // TCPlayer.mountHlsProvider(true);
52
58
  var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
53
- autoplay: true,
59
+ // autoplay: true,
60
+ // language: 'en',
54
61
  // 1. 历史数据,无psign场景
55
62
  // fileID: '5285890799710670616', // 请传入需要播放的视频filID 必须
56
63
  // appID: '1400329073', // 请传入点播账号的appID 必须
@@ -79,11 +86,32 @@
79
86
  // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ2OTk1NCwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyLCJmYWlyUGxheURlZmluaXRpb24iOjExfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTMwNjI2NDcwMy52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.vRZS29srBfpGAVXiAixURviFJZel_Aq3jnC_V_bX7hk',
80
87
 
81
88
  // 6. AES
82
- // fileID: '243791576943072647',
83
- // appID: '1306264703',
84
- // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ2OTk3MSwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTMwNjI2NDcwMy52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.FOcmChHfrGY9tYCDn20MSQi-IqvQ9U_U6qLNgx9MhLg',
89
+ fileID: '243791576943072647',
90
+ appID: '1306264703',
91
+ psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ2OTk3MSwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTMwNjI2NDcwMy52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.FOcmChHfrGY9tYCDn20MSQi-IqvQ9U_U6qLNgx9MhLg',
92
+ // licenseUrl: 'https://license-test.vod2.myqcloud.com/test/license/testV2/1300054025_1/v_cube.license',
93
+ licenseUrl: 'https://license-test.vod2.myqcloud.com/test/license/testV2/1251132654_1/v_cube.license',
94
+
95
+
96
+
97
+ // 基础版
98
+ // https://license-test.vod2.myqcloud.com/test/license/testV2/1251132654_1/v_cube.license
99
+
100
+ // 高级版
101
+ // https://license-test.vod2.myqcloud.com/test/license/testV2/1251132654_1/v_cube.license
102
+
103
+
104
+ // licenseUrl: 'https://license-test.vod2.myqcloud.com/test/license/testV2/1300054025_1/v_cube.license',
105
+
106
+ // licenseUrl: 'https://vincentlli-1306264703.cos.ap-nanjing.myqcloud.com/tcplayer/vcube.license',
107
+
108
+
109
+ // fileID: '3270835010498441393',
110
+ // appID: '1500012967',
111
+ // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjk2NywiZmlsZUlkIjoiMzI3MDgzNTAxMDQ5ODQ0MTM5MyIsImN1cnJlbnRUaW1lU3RhbXAiOjE2ODkwNjY4NzUsImNvbnRlbnRJbmZvIjp7ImF1ZGlvVmlkZW9UeXBlIjoiUHJvdGVjdGVkQWRhcHRpdmUiLCJkcm1BZGFwdGl2ZUluZm8iOnsid2lkZXZpbmVEZWZpbml0aW9uIjoxNDQ0Njc5fX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAxMjk2Ny52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFAifX0.kLW4YWXMoomnyzLwzMlLD2jJQnP2NbliQQ33vByC-DI',
112
+
113
+
85
114
 
86
- // licenseUrl: '',
87
115
  // 7. widevine
88
116
  // fileID: '243791576943072647',
89
117
  // appID: '1306264703',
@@ -99,6 +127,10 @@
99
127
  // appID: '1306264703',
100
128
  // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ3MDAwNiwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJSYXdBZGFwdGl2ZSIsInJhd0FkYXB0aXZlRGVmaW5pdGlvbiI6MTB9LCJ1cmxBY2Nlc3NJbmZvIjp7ImRvbWFpbiI6IjEzMDYyNjQ3MDMudm9kMi5teXFjbG91ZC5jb20iLCJzY2hlbWUiOiJIVFRQUyJ9fQ.-yxAj1SBp-4QK7sC5Sz7E6gFuqRgY06vbN1Nkto0GQA',
101
129
 
130
+ // fileID: '3270835010468833724',
131
+ // appID: '1500012967',
132
+ // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAxMjk2NywiZmlsZUlkIjoiMzI3MDgzNTAxMDQ2ODgzMzcyNCIsImN1cnJlbnRUaW1lU3RhbXAiOjE2ODkwNDc4ODUsImNvbnRlbnRJbmZvIjp7ImF1ZGlvVmlkZW9UeXBlIjoiUHJvdGVjdGVkQWRhcHRpdmUiLCJkcm1BZGFwdGl2ZUluZm8iOnsid2lkZXZpbmVEZWZpbml0aW9uIjoxNDQ0Njc5fX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAxMjk2Ny52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFAifX0.2shCzGjOrRQF_oa5SpBckm08hvX0GhKw6r-K-0K0thc',
133
+
102
134
  // 10. 不加密DASH
103
135
  // fileID: '243791576943072647',
104
136
  // appID: '1306264703',
@@ -108,19 +140,20 @@
108
140
  // appID: '1500005692',
109
141
  // fileID: '387702307006254554',
110
142
  // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAwNTY5MiwiZmlsZUlkIjoiMzg3NzAyMzA3MDA2MjU0NTU0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDMxMDM1MiwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAwNTY5Mi52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFAifX0.PFwxL9NNs_gyrR5U3dxwzeip3wZT4M-Fvtd0H2WkjnA',
111
-
112
- languages:{
113
- "zh-cn":{
114
- "Server respond error data.(eg. stream not exist)": "可定义错误提示文案,如:没带防盗链检测参数,请重试"
115
- }
116
- },
117
-
118
- flvConfig: {
119
- hasAudio: false,
120
- },
121
-
143
+ webrtcConfig: {
144
+ connectRetryCount: 10,
145
+ connectRetryDelay: 2,
146
+ signalDomain: {
147
+ protocol: 'http', // todo 现网发布要改
148
+ domain: 'webrtc-play-dev.media-cast.vod-qcloud.com', // todo 现网发布要改
149
+ query: false,
150
+ },
151
+ },
122
152
  //其他参数请在开发文档中查看
123
153
  plugins: {
154
+ // SafeCheck: {
155
+
156
+ // },
124
157
  ContinuePlay: {
125
158
  // auto: true // 是否在播放时自动续播
126
159
  },
@@ -137,14 +170,63 @@
137
170
  }
138
171
  });
139
172
 
140
- player.src('https://liteavapp.qcloud.com/live/liteavdemoplayerstreamid.flv');
173
+
174
+ // setTimeout(() => {
175
+ // console.log('player ori', player);
176
+ // player.loadVideoByID({
177
+ // fileID: '243791576943072647',
178
+ // appID: '1306264703',
179
+ // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ2OTk3MSwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTMwNjI2NDcwMy52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.FOcmChHfrGY9tYCDn20MSQi-IqvQ9U_U6qLNgx9MhLg',
180
+ // });
181
+ // }, 3000);
182
+ // player.src('http://1305533787.vod2.myqcloud.com/6bfcd0cavodtranssgp1305533787/df5fac093270835010461032124/v.f100010.mp4');
183
+
184
+ // player.src('webrtc://global-lebtest-play.myqcloud.com/live/lebtest?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=69f1eb8c');
185
+
186
+ // player.src('http://vincent.pub/live/sei.m3u8');
187
+ // player.src('https://1305071164.vod2.myqcloud.com/0500fb7evodcq1305071164/76cbdeb53270835009987527597/playlist_eof.m3u8');
188
+ // player.src('https://68789.liveplay.myqcloud.com/live/webrtc_demo_1686626553419.flv');
189
+
190
+
191
+ // player.ready(function() {
192
+ // debugger
193
+ // player.tech_.hlsProvider.hls.removeLevel(2)
194
+ // });
195
+
196
+
197
+ player.on('licenseparsed', function(e) {
198
+ console.log('eeee',e );
199
+ });
200
+
201
+ player.on('waiting', function(e) {
202
+ console.log('waiting');
203
+ });
204
+ player.on('error', function(e) {
205
+ console.log('e', e);
206
+ });
207
+
208
+ player.on('playcgistart', function(e) {
209
+ console.log('playcgistart', e);
210
+ });
211
+
212
+ player.on('playcgiend', function(e) {
213
+ console.log('playcgiend', e);
214
+ });
215
+
216
+ player.on('pause', function(e) {
217
+ console.log('pause');
218
+ });
219
+
220
+
141
221
 
142
222
  document.getElementById('switch').addEventListener('click', function() {
143
- player.loadVideoByID({
144
- appID: '1500005692',
145
- fileID: '387702307006254554',
146
- psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAwNTY5MiwiZmlsZUlkIjoiMzg3NzAyMzA3MDA2MjU0NTU0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDMxMDM1MiwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAwNTY5Mi52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFAifX0.PFwxL9NNs_gyrR5U3dxwzeip3wZT4M-Fvtd0H2WkjnA',
147
- });
223
+ player.src('webrtc://68789.liveplay.myqcloud.com/live/webrtc_demo_1688439945507');
224
+
225
+ // player.loadVideoByID({
226
+ // appID: '1500005692',
227
+ // fileID: '387702307006254554',
228
+ // psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTUwMDAwNTY5MiwiZmlsZUlkIjoiMzg3NzAyMzA3MDA2MjU0NTU0IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDMxMDM1MiwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTUwMDAwNTY5Mi52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFAifX0.PFwxL9NNs_gyrR5U3dxwzeip3wZT4M-Fvtd0H2WkjnA',
229
+ // });
148
230
  });
149
231
  </script>
150
232
  </body>
@@ -12,9 +12,9 @@
12
12
  <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/ie8/videojs-ie8.js"></script>
13
13
  <![endif]-->
14
14
  <!-- 如果需要在 Chrome Firefox 等现代浏览器中通过H5播放hls,需要引入 hls.js -->
15
- <!-- <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/hls.min.0.13.2m.js"></script> -->
15
+ <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/hls.min.0.13.2m.js"></script>
16
16
  <!-- 引入播放器 js 文件 -->
17
- <script src="http://localhost:8080/dist/tcplayer.v4.8.0.js"></script>
17
+ <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.v4.3.0.js"></script>
18
18
  <!-- 示例 CSS 样式可自行删除 -->
19
19
  <style>
20
20
  html,body{
@@ -52,31 +52,24 @@
52
52
  -->
53
53
  <script>
54
54
  var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
55
- multiResolution:{
56
- sources:{
57
- 'SD':[
58
- {
59
- src: 'https://1500005692.vod2.myqcloud.com/43843706vodtranscq1500005692/62656d94387702300542496289/v.f100240.m3u8',
60
- }
61
- ],
62
- 'HD':[
63
- {
64
- src: 'webrtc://5664.liveplay.myqcloud.com/live/5664_harchar1?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb',
65
- }
66
- ],
67
- 'FHD':[
68
- {
69
- src: 'webrtc://5664.liveplay.myqcloud.com/live/5664_harchar1?txSecret=f22a813b284137ed10d3259a7b5c224b&txTime=6403f7bb',
70
- }
71
- ]
55
+ fileID: '5285890799710670616', // 请传入需要播放的视频filID 必须
56
+ appID: '1400329073', // 请传入点播账号的appID 必须
57
+ //其他参数请在开发文档中查看
58
+ plugins: {
59
+ ContinuePlay: {
60
+ // auto: true // 是否在播放时自动续播
72
61
  },
73
- labels:{
74
- 'SD':'标清','HD':'高清','FHD':'超清'
75
- },
76
- showOrder:['SD','HD','FHD'],
77
- defaultRes: 'SD'
78
- },
79
-
62
+ ProgressMarker: true,
63
+ ContextMenu: {
64
+ statistic: true,
65
+ levelSwitch: {
66
+ open: true, // 打开切换提示
67
+ // switchingText: '开始', // 开始切换时文案
68
+ // switchedText: '成功', // 切换成功时文案
69
+ // switchErrorText: '失败', // 切换失败时文案
70
+ }
71
+ }
72
+ }
80
73
  });
81
74
  </script>
82
75
  </body>
@@ -69,9 +69,10 @@
69
69
  'seeking',
70
70
  'seeked',
71
71
  'ended',
72
+ 'load',
72
73
  'durationchange',
73
- 'timeupdate',
74
- 'progress',
74
+ // 'timeupdate',
75
+ // 'progress',
75
76
  'play',
76
77
  'pause',
77
78
  'ratechange',
@@ -79,8 +80,10 @@
79
80
  'volumechange'
80
81
  ];
81
82
  var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
82
- fileID: '5285890799710670616', // 请传入需要播放的视频filID 必须
83
- appID: '1400329073' // 请传入点播账号的appID 必须
83
+ fileID: '243791576943072647',
84
+ appID: '1306264703',
85
+ psign: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBJZCI6MTMwNjI2NDcwMywiZmlsZUlkIjoiMjQzNzkxNTc2OTQzMDcyNjQ3IiwiY3VycmVudFRpbWVTdGFtcCI6MTY3MDQ2OTk3MSwiY29udGVudEluZm8iOnsiYXVkaW9WaWRlb1R5cGUiOiJQcm90ZWN0ZWRBZGFwdGl2ZSIsImRybUFkYXB0aXZlSW5mbyI6eyJwcml2YXRlRW5jcnlwdGlvbkRlZmluaXRpb24iOjEyfX0sInVybEFjY2Vzc0luZm8iOnsiZG9tYWluIjoiMTMwNjI2NDcwMy52b2QyLm15cWNsb3VkLmNvbSIsInNjaGVtZSI6IkhUVFBTIn19.FOcmChHfrGY9tYCDn20MSQi-IqvQ9U_U6qLNgx9MhLg',
86
+
84
87
  //其他参数请在开发文档中查看
85
88
  });
86
89
  events.forEach(function(val, i){
@@ -6,8 +6,8 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no">
7
7
  <title>腾讯云视频点播示例</title>
8
8
 
9
- <link href="//imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.min.css" rel="stylesheet">
10
- <script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.7.2/tcplayer.v4.7.2.min.js"></script>
9
+ <link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.8.0/tcplayer.min.css" rel="stylesheet">
10
+ <script src="http://localhost:8081/dist/tcplayer.v4.9.1.js"></script>
11
11
  <style>
12
12
  html,body{
13
13
  margin: 0;
@@ -37,6 +37,10 @@
37
37
  * 设置 x5-playsinline 属性会使用 X5 UI 的播放器
38
38
  -->
39
39
  <script>
40
+ // 设置首次水印出现的时间,方便观察效果
41
+ // 不设置会在随机时间间歇出现
42
+ localStorage.setItem('ghostWatermarkFirstShow', 0);
43
+
40
44
  // 签名中带有幽灵水印文本
41
45
  var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
42
46
  fileID: '243791576943072647',
@@ -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>
@@ -0,0 +1,138 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7
+ <meta name="viewport"
8
+ content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no">
9
+ <title>腾讯云视频点播示例</title>
10
+
11
+
12
+ <link href="https://tcplayer.vcube.tencent.com/tcplayer/release/v4.8.0/tcplayer.min.css" rel="stylesheet" />
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>
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
+
19
+
20
+ <!-- <script src="https://webrtc-demo.myqcloud.com/pull-sdk/js/vconsole.min.js"></script> -->
21
+
22
+ <style>
23
+ html,
24
+ body {
25
+ margin: 0;
26
+ padding: 0;
27
+ }
28
+
29
+ .tcplayer {
30
+ margin: 0 auto;
31
+ }
32
+
33
+ @media screen and (max-width: 640px) {
34
+ #player-container-id {
35
+ width: 100%;
36
+ height: 270px;
37
+ }
38
+ }
39
+
40
+ /* 设置logo在高分屏的显示样式 */
41
+ @media only screen and (min-device-pixel-ratio: 2),
42
+ only screen and (-webkit-min-device-pixel-ratio: 2) {
43
+ .tcp-logo-img {
44
+ width: 50%;
45
+ }
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body style="overflow-y: hidden">
51
+ <!-- 设置播放器容器 -->
52
+ <video id="player-container-id" preload="auto" width="640" height="360" playsinline webkit-playsinline crossorigin="anonymous">
53
+ </video>
54
+
55
+ <button id="enterVR">enterVR</button>
56
+ <button id="exitVR">exitVR</button>
57
+ <button id="enableSensor">enableSensor</button>
58
+ <button id="gyroscopeVR">gyroscope:VR</button>
59
+ <button id="gyroscopeNone">gyroscope:none</button>
60
+ <button id="lookAt">lookAt</button>
61
+
62
+
63
+
64
+ <!--
65
+ 注意事项:
66
+ * 播放器容器必须为 video 标签
67
+ * player-container-id 为播放器容器的ID,可自行设置
68
+ * 播放器区域的尺寸请按需设置,建议通过 css 进行设置,通过css可实现容器自适应等效果
69
+ * playsinline webkit-playsinline 这几个属性是为了在标准移动端浏览器不劫持视频播放的情况下实现行内播放,此处仅作示例,请按需使用
70
+ * 设置 x5-playsinline 属性会使用 X5 UI 的播放器
71
+ -->
72
+
73
+ <script>
74
+ // var vConsole = new VConsole();
75
+ var player = TCPlayer('player-container-id', { // player-container-id 为播放器容器ID,必须与html中一致
76
+ reportable: false,
77
+
78
+ // 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',
83
+
84
+ plugins: {
85
+ VR: {
86
+ // isEnableController: true,
87
+ // isEnableZoom: true,
88
+ // yaw: 0,
89
+ // pitch: 0,
90
+ // fov: 65,
91
+ // yawRange: [-180, 180],
92
+ // pitchRange: [-90, 90],
93
+ // fovRange: [30, 110],
94
+ },
95
+ SafeCheck: true,
96
+ }
97
+ });
98
+
99
+ // player.ready(function() {
100
+ // player.loadPlugin();
101
+ // });
102
+
103
+ player.on('error', (err) => {
104
+ console.log('err', err);
105
+ });
106
+
107
+ // mp4 vr
108
+ // player.src('https://1305308197.vod2.myqcloud.com/a3557591vodger1305308197/f7270750243791579800235226/f0.mp4');
109
+
110
+ document.getElementById('enterVR').addEventListener('click', function () {
111
+ player.plugins['VR'].enterVR();
112
+ });
113
+
114
+ document.getElementById('exitVR').addEventListener('click', function () {
115
+ player.plugins['VR'].exitVR();
116
+ });
117
+
118
+ document.getElementById('enableSensor').addEventListener('click', function () {
119
+ player.plugins['VR'].enableSensor();
120
+ });
121
+
122
+ document.getElementById('gyroscopeVR').addEventListener('click', function () {
123
+ player.plugins['VR'].setGyroMode('VR');
124
+ });
125
+
126
+ document.getElementById('gyroscopeNone').addEventListener('click', function () {
127
+ player.plugins['VR'].setGyroMode('none');
128
+ });
129
+
130
+ document.getElementById('lookAt').addEventListener('click', function() {
131
+ player.plugins['VR'].lookAt({yaw: 30}, 1000);
132
+ });
133
+
134
+
135
+ </script>
136
+ </body>
137
+
138
+ </html>