tcplayer.js 4.7.0 → 4.8.0-beta.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.
Files changed (82) hide show
  1. package/dist/console/vod-player-v3.html +125 -0
  2. package/dist/console/vod-player.html +124 -0
  3. package/dist/examples/vod/7447398155146701990.jpg +0 -0
  4. package/dist/examples/vod/7447398155146701990.vtt +301 -0
  5. package/dist/examples/vod/tcplayer-av1.html +123 -0
  6. package/dist/examples/vod/tcplayer-vod-all.html +107 -0
  7. package/dist/examples/vod/tcplayer-vod-audio-tracks.html +66 -0
  8. package/dist/examples/vod/tcplayer-vod-base-flash.html +64 -0
  9. package/dist/examples/vod/tcplayer-vod-base-native-control.html +68 -0
  10. package/dist/examples/vod/tcplayer-vod-base-v4-dash.html +84 -0
  11. package/dist/examples/vod/tcplayer-vod-base-v4-quality-api.html +90 -0
  12. package/dist/examples/vod/tcplayer-vod-base-v4.html +78 -0
  13. package/dist/examples/vod/tcplayer-vod-base.html +76 -0
  14. package/dist/examples/vod/tcplayer-vod-change-file-statistic.html +79 -0
  15. package/dist/examples/vod/tcplayer-vod-change-file.html +76 -0
  16. package/dist/examples/vod/tcplayer-vod-continue-play-by-fileid.html +70 -0
  17. package/dist/examples/vod/tcplayer-vod-continue-play-by-url.html +72 -0
  18. package/dist/examples/vod/tcplayer-vod-costom-host.html +66 -0
  19. package/dist/examples/vod/tcplayer-vod-custom-enter-full-viewport.html +88 -0
  20. package/dist/examples/vod/tcplayer-vod-custom-ui.html +98 -0
  21. package/dist/examples/vod/tcplayer-vod-definition.html +71 -0
  22. package/dist/examples/vod/tcplayer-vod-drm-fairplay.html +165 -0
  23. package/dist/examples/vod/tcplayer-vod-drm-token-auto.html +101 -0
  24. package/dist/examples/vod/tcplayer-vod-drm-token.html +156 -0
  25. package/dist/examples/vod/tcplayer-vod-drm-widevine.html +165 -0
  26. package/dist/examples/vod/tcplayer-vod-drm.html +164 -0
  27. package/dist/examples/vod/tcplayer-vod-dynamic-watermark.html +85 -0
  28. package/dist/examples/vod/tcplayer-vod-enter-full-viewport.html +87 -0
  29. package/dist/examples/vod/tcplayer-vod-event.html +93 -0
  30. package/dist/examples/vod/tcplayer-vod-ghost-watermark.html +48 -0
  31. package/dist/examples/vod/tcplayer-vod-hls-decrypt-key-tool.html +215 -0
  32. package/dist/examples/vod/tcplayer-vod-hls-decrypt-key.html +76 -0
  33. package/dist/examples/vod/tcplayer-vod-hls-encrypt-private.html +97 -0
  34. package/dist/examples/vod/tcplayer-vod-hls-encrypt.html +61 -0
  35. package/dist/examples/vod/tcplayer-vod-hls-masterplaylist.html +65 -0
  36. package/dist/examples/vod/tcplayer-vod-hls-token.html +67 -0
  37. package/dist/examples/vod/tcplayer-vod-image-patch.html +66 -0
  38. package/dist/examples/vod/tcplayer-vod-key.html +87 -0
  39. package/dist/examples/vod/tcplayer-vod-level-switch-tips.html +85 -0
  40. package/dist/examples/vod/tcplayer-vod-logo.html +72 -0
  41. package/dist/examples/vod/tcplayer-vod-mirror.html +66 -0
  42. package/dist/examples/vod/tcplayer-vod-mutil.html +68 -0
  43. package/dist/examples/vod/tcplayer-vod-no-control.html +62 -0
  44. package/dist/examples/vod/tcplayer-vod-no-progress.html +64 -0
  45. package/dist/examples/vod/tcplayer-vod-playlist.html +76 -0
  46. package/dist/examples/vod/tcplayer-vod-preload.html +74 -0
  47. package/dist/examples/vod/tcplayer-vod-progress-marker.html +64 -0
  48. package/dist/examples/vod/tcplayer-vod-refer.html +84 -0
  49. package/dist/examples/vod/tcplayer-vod-size-adaptive.html +70 -0
  50. package/dist/examples/vod/tcplayer-vod-size-full-viewport.html +68 -0
  51. package/dist/examples/vod/tcplayer-vod-size.html +70 -0
  52. package/dist/examples/vod/tcplayer-vod-vtt-thumbnail-src.html +71 -0
  53. package/dist/examples/vod/tcplayer-vod-vtt-thumbnail.html +65 -0
  54. package/dist/examples/vod/tcplayer-vod-x5-playsinline.html +65 -0
  55. package/dist/examples/vod/tcplayer-vod-x5.html +66 -0
  56. package/dist/examples/vod/typlayer-vod-dynamic-init.html +129 -0
  57. package/dist/examples/vod/video.html +15 -0
  58. package/dist/examples/webrtc/tcplayer-src-dynamic.html +92 -0
  59. package/dist/examples/webrtc/tcplayer-src-meeting.html +193 -0
  60. package/dist/examples/webrtc/tcplayer-src-webrtc-abr.html +236 -0
  61. package/dist/examples/webrtc/tcplayer-src-webrtc-autoplay.html +124 -0
  62. package/dist/examples/webrtc/tcplayer-src-webrtc-change-src.html +189 -0
  63. package/dist/examples/webrtc/tcplayer-src-webrtc-mutilRes.html +142 -0
  64. package/dist/examples/webrtc/tcplayer-src-webrtc.html +165 -0
  65. package/dist/libs/TXLivePlayer-1.3.0.min.js +1 -0
  66. package/dist/libs/dash.all.min.v3.1.3.js +0 -20
  67. package/dist/libs/hlsp2p.min.1.6.28.js +3 -0
  68. package/dist/libs/qvbp2p_common.min.1.8.29.js +1 -0
  69. package/dist/tcplayer.css +2529 -0
  70. package/dist/tcplayer.min.css +1 -1
  71. package/dist/tcplayer.v4.8.0.min.js +17 -0
  72. package/package.json +2 -4
  73. package/CHANGELOG.md +0 -120
  74. package/dist/libs/TXLivePlayer-1.2.3.min.js +0 -1
  75. package/dist/libs/dash.all.min.2.9.3.js +0 -32
  76. package/dist/libs/dash.all.min.4.4.1.js +0 -0
  77. package/dist/libs/flv.min.1.5.js +0 -7
  78. package/dist/libs/flv.min.1.6.2.js +0 -10
  79. package/dist/libs/hls.min.0.12.4.js +0 -2
  80. package/dist/libs/hls.min.0.13.2m.js +0 -4
  81. package/dist/libs/hls.min.1.1.5.js +0 -28831
  82. package/dist/tcplayer.v4.7.0.min.js +0 -17
@@ -0,0 +1,165 @@
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
+ <!-- 引入播放器 css 文件 -->
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
+ <!-- 引入播放器 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>
29
+
30
+ <!-- 示例 CSS 样式可自行删除 -->
31
+ <style>
32
+ html,body{
33
+ margin: 0;
34
+ padding: 0;
35
+ }
36
+ .tcplayer {
37
+ margin: 0 auto;
38
+ }
39
+ @media screen and (max-width: 640px) {
40
+ #player-container-id {
41
+ width: 100%;
42
+ height: 270px;
43
+ }
44
+ }
45
+ /* 设置logo在高分屏的显示样式 */
46
+ @media only screen and (min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 2) {
47
+ .tcp-logo-img {
48
+ width: 50%;
49
+ }
50
+ }
51
+ .form-control{
52
+ border-radius: 0px;
53
+ width: 300px;
54
+ height: 30px;
55
+ display: block;
56
+ margin: 10px;
57
+ }
58
+ button{
59
+ margin: 0 10px;
60
+ }
61
+ </style>
62
+ </head>
63
+ <body>
64
+ <!-- 设置播放器容器 -->
65
+ <video id="player-container-id" preload="auto" width="640" height="360" playsinline webkit-playsinline>
66
+ </video>
67
+ <!--
68
+ 注意事项:
69
+ * 播放器容器必须为 video 标签
70
+ * player-container-id 为播放器容器的ID,可自行设置
71
+ * 播放器区域的尺寸请按需设置,建议通过 css 进行设置,通过css可实现容器自适应等效果
72
+ * playsinline webkit-playsinline 这几个属性是为了在标准移动端浏览器不劫持视频播放的情况下实现行内播放,此处仅作示例,请按需使用
73
+ * 设置 x5-playsinline 属性会使用 X5 UI 的播放器
74
+ -->
75
+ <script>
76
+ var vConsole = new VConsole();
77
+
78
+ 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
+ }
124
+ });
125
+
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
+ </script>
164
+ </body>
165
+ </html>
@@ -0,0 +1,101 @@
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
+ <!-- 引入播放器 css 文件 -->
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="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/hls.min.0.12.4.js"></script>
17
+ <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/dash.all.min.2.9.3.js"></script>
18
+ <!-- 引入播放器 js 文件 -->
19
+ <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.min.js"></script>
20
+ <!-- 示例 CSS 样式可自行删除 -->
21
+ <style>
22
+ html,body{
23
+ margin: 0;
24
+ padding: 0;
25
+ }
26
+ .tcplayer {
27
+ margin: 0 auto;
28
+ }
29
+ @media screen and (max-width: 640px) {
30
+ #player-container-id {
31
+ width: 100%;
32
+ height: 270px;
33
+ }
34
+ }
35
+ /* 设置logo在高分屏的显示样式 */
36
+ @media only screen and (min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 2) {
37
+ .tcp-logo-img {
38
+ width: 50%;
39
+ }
40
+ }
41
+ .form-control{
42
+ border-radius: 0px;
43
+ width: 300px;
44
+ height: 30px;
45
+ display: block;
46
+ margin: 10px;
47
+ }
48
+ button{
49
+ margin: 0 10px;
50
+ }
51
+ </style>
52
+ </head>
53
+ <body>
54
+ <!-- 设置播放器容器 -->
55
+ <video id="player-container-id" preload="auto" width="640" height="360" playsinline webkit-playsinline>
56
+ </video>
57
+ <!--
58
+ 注意事项:
59
+ * 播放器容器必须为 video 标签
60
+ * player-container-id 为播放器容器的ID,可自行设置
61
+ * 播放器区域的尺寸请按需设置,建议通过 css 进行设置,通过css可实现容器自适应等效果
62
+ * playsinline webkit-playsinline 这几个属性是为了在标准移动端浏览器不劫持视频播放的情况下实现行内播放,此处仅作示例,请按需使用
63
+ * 设置 x5-playsinline 属性会使用 X5 UI 的播放器
64
+ -->
65
+ <script>
66
+ // var vConsole = new VConsole();
67
+
68
+ var player,
69
+ fileID = '5285890787511552106',
70
+ appID = '1256468886',
71
+ playDefinition = '20',
72
+ request = new XMLHttpRequest();
73
+ /**
74
+ * 播放DRM内容有一下两个步骤
75
+ * 1. 获取播放 DRM 内容用到的 token
76
+ * 2. 将准备好的参数传递给播放器进行初始化
77
+ */
78
+ request.addEventListener('load', function (event) {
79
+ player = TCPlayer('player-container-id', {
80
+ appID: appID, // 请传入点播账号的appID 必须
81
+ fileID: fileID // 请传入需要播放的视频filID 必须
82
+ ,playDefinition: playDefinition // 请传入播放模版 必须 关于播放模版请看 **链接**
83
+ ,Html5: {
84
+ nativeTextTracks: false // 在 safari 开启支持 webvtt 解析
85
+ },
86
+ plugins: {
87
+ DRM: {
88
+ token: event.target.response, // 传入您的后台服务签发的 token
89
+ certificateUri: 'https://5000.drm.myqcloud.com/huaxida_test/fairplay.cer', // 传入 Fairplay 播放需要用到的证书地址
90
+ },
91
+ ProgressMarker: {},
92
+ }
93
+ });
94
+
95
+ }, false);
96
+ request.open('GET', 'https://demo.vod2.myqcloud.com/drm/gettoken?fileId='+fileID+'&appId='+appID, true); // 去您的 token 签发服务地址获取token
97
+ request.send();
98
+
99
+ </script>
100
+ </body>
101
+ </html>
@@ -0,0 +1,156 @@
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
+ <!-- 引入播放器 css 文件 -->
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="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/hls.min.0.12.4.js"></script>
17
+ <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/libs/dash.all.min.2.9.3.js"></script>
18
+ <!-- 引入播放器 js 文件 -->
19
+ <script src="//imgcache.qq.com/open/qcloud/video/tcplayer/tcplayer.min.js"></script>
20
+ <!-- 示例 CSS 样式可自行删除 -->
21
+ <style>
22
+ html,body{
23
+ margin: 0;
24
+ padding: 0;
25
+ }
26
+ .tcplayer {
27
+ margin: 0 auto;
28
+ }
29
+ @media screen and (max-width: 640px) {
30
+ #player-container-id {
31
+ width: 100%;
32
+ height: 270px;
33
+ }
34
+ }
35
+ /* 设置logo在高分屏的显示样式 */
36
+ @media only screen and (min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 2) {
37
+ .tcp-logo-img {
38
+ width: 50%;
39
+ }
40
+ }
41
+ .form-control{
42
+ border-radius: 0px;
43
+ width: 300px;
44
+ height: 30px;
45
+ display: block;
46
+ margin: 10px;
47
+ }
48
+ button{
49
+ margin: 0 10px;
50
+ }
51
+ </style>
52
+ </head>
53
+ <body>
54
+
55
+ <input class="form-control" type="text" placeholder="appID" id="appID" value="1256468886">
56
+ <input class="form-control" type="text" placeholder="fileID" id="fileID" value="5285890787511552106">
57
+ <input class="form-control" type="text" placeholder="playDefinition" id="playDefinition" value="20">
58
+ <input class="form-control" type="text" placeholder="t" id="t" value="">
59
+ <input class="form-control" type="text" placeholder="us" id="us" value="">
60
+ <input class="form-control" type="text" placeholder="sign" id="sign" value="">
61
+ <input class="form-control" type="text" placeholder="certificateUri" id="certificateUri">
62
+ <input class="form-control" type="text" placeholder="token" id="token">
63
+ <button type="button" id="btn-get-token">Step 1 Get token</button>
64
+ <button type="button" id="btn-load-video">Step 2 Load Video</button>
65
+ <!-- 设置播放器容器 -->
66
+ <video id="player-container-id" preload="auto" width="640" height="360" playsinline webkit-playsinline>
67
+ </video>
68
+ <!--
69
+ 注意事项:
70
+ * 播放器容器必须为 video 标签
71
+ * player-container-id 为播放器容器的ID,可自行设置
72
+ * 播放器区域的尺寸请按需设置,建议通过 css 进行设置,通过css可实现容器自适应等效果
73
+ * playsinline webkit-playsinline 这几个属性是为了在标准移动端浏览器不劫持视频播放的情况下实现行内播放,此处仅作示例,请按需使用
74
+ * 设置 x5-playsinline 属性会使用 X5 UI 的播放器
75
+ -->
76
+ <script>
77
+ console.log(navigator.userAgent, TCPlayer.browser, window.navigator.requestMediaKeySystemAccess);
78
+
79
+ var widevineOptions = [
80
+ {
81
+ // initDataTypes: ['keyids', 'webm'],
82
+ initDataTypes: ['cenc', 'webm', 'mp4'],
83
+ audioCapabilities: [
84
+ { contentType: 'audio/mp4; codecs="mp4a.40.2"'},
85
+ { contentType: 'audio/webm; codecs="opus"' },
86
+ { contentType: 'audio/webm; codecs="vorbis"' }
87
+ ],
88
+ videoCapabilities: [
89
+ { contentType: 'video/mp4; codecs="avc1.42c01e"'},
90
+ { contentType: 'video/webm; codecs="vp9"' , robustness: 'foo'},
91
+ { contentType: 'video/webm; codecs="vp8"' , robustness: 'bar'}
92
+ ]
93
+ }
94
+ ];
95
+ try {
96
+ navigator.requestMediaKeySystemAccess('com.widevine.alpha', widevineOptions).then(function (keySystemAccess) {
97
+ console.log(keySystemAccess.getConfiguration())
98
+ }).catch(function (e) {
99
+ console.log(e);
100
+ return false;
101
+ });
102
+ } catch (e) {
103
+ console.log(e);
104
+ }
105
+ var t,
106
+ us,
107
+ sign;
108
+
109
+ var player = TCPlayer('player-container-id', {
110
+ Html5: {
111
+ nativeTextTracks: false
112
+ },
113
+ plugins: {
114
+ DRM: true,
115
+ ProgressMarker: {},
116
+ }
117
+ });
118
+ var btnGetToken = document.querySelector('#btn-get-token');
119
+ btnGetToken.addEventListener('click', function () {
120
+ var request = new XMLHttpRequest();
121
+ request.addEventListener('load', function (event) {
122
+ document.querySelector('#token').value = event.target.response;
123
+ }, false);
124
+ request.open('GET', 'https://demo.vod2.myqcloud.com/drm/gettoken?fileId='+document.querySelector('#fileID').value+'&appId='+document.querySelector('#appID').value, true);
125
+ request.send();
126
+ });
127
+
128
+ var btnLoadVideo = document.querySelector('#btn-load-video');
129
+ btnLoadVideo.addEventListener('click', function () {
130
+ if (!document.querySelector('#token').value) {
131
+ return
132
+ }
133
+
134
+ t = document.querySelector('#t').value;
135
+ us = document.querySelector('#us').value;
136
+ sign = document.querySelector('#sign').value;
137
+
138
+ player.DRM().setOptions({
139
+ token: document.querySelector('#token').value,
140
+ certificateUri: document.querySelector('#certificateUri').value || 'https://5000.drm.myqcloud.com/huaxida_test/fairplay.cer',
141
+ });
142
+
143
+ player.loadVideoByID({
144
+ fileID: document.querySelector('#fileID').value || '15517827183920333646', // 请传入需要播放的视频filID 必须
145
+ appID: document.querySelector('#appID').value || '1253039488' // 请传入点播账号的appID 必须
146
+ ,playDefinition: document.querySelector('#playDefinition').value || '10'
147
+ ,t: t
148
+ ,us: us
149
+ ,sign: sign
150
+ })
151
+ });
152
+
153
+ </script>
154
+
155
+ </body>
156
+ </html>
@@ -0,0 +1,165 @@
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
+ <!-- 引入播放器 css 文件 -->
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
+ <!-- 引入播放器 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>
29
+
30
+ <!-- 示例 CSS 样式可自行删除 -->
31
+ <style>
32
+ html,body{
33
+ margin: 0;
34
+ padding: 0;
35
+ }
36
+ .tcplayer {
37
+ margin: 0 auto;
38
+ }
39
+ @media screen and (max-width: 640px) {
40
+ #player-container-id {
41
+ width: 100%;
42
+ height: 270px;
43
+ }
44
+ }
45
+ /* 设置logo在高分屏的显示样式 */
46
+ @media only screen and (min-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 2) {
47
+ .tcp-logo-img {
48
+ width: 50%;
49
+ }
50
+ }
51
+ .form-control{
52
+ border-radius: 0px;
53
+ width: 300px;
54
+ height: 30px;
55
+ display: block;
56
+ margin: 10px;
57
+ }
58
+ button{
59
+ margin: 0 10px;
60
+ }
61
+ </style>
62
+ </head>
63
+ <body>
64
+ <!-- 设置播放器容器 -->
65
+ <video id="player-container-id" preload="auto" width="640" height="360" playsinline webkit-playsinline>
66
+ </video>
67
+ <!--
68
+ 注意事项:
69
+ * 播放器容器必须为 video 标签
70
+ * player-container-id 为播放器容器的ID,可自行设置
71
+ * 播放器区域的尺寸请按需设置,建议通过 css 进行设置,通过css可实现容器自适应等效果
72
+ * playsinline webkit-playsinline 这几个属性是为了在标准移动端浏览器不劫持视频播放的情况下实现行内播放,此处仅作示例,请按需使用
73
+ * 设置 x5-playsinline 属性会使用 X5 UI 的播放器
74
+ -->
75
+ <script>
76
+ var vConsole = new VConsole();
77
+
78
+ 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
+ }
124
+ });
125
+
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
+ </script>
164
+ </body>
165
+ </html>