@volcengine/veplayer 1.15.1 → 1.15.2-rc.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.

Potentially problematic release.


This version of @volcengine/veplayer might be problematic. Click here for more details.

Files changed (245) hide show
  1. package/.changeset/config.json +11 -0
  2. package/.changeset/curvy-yaks-smoke.md +5 -0
  3. package/.changeset/neat-eyes-search.md +5 -0
  4. package/.codebase/pipelines/create-api-doc.yaml +16 -0
  5. package/.eslintignore +5 -0
  6. package/.eslintrc.json +53 -0
  7. package/.stylelintrc.js +51 -0
  8. package/CHANGELOG.md +5665 -0
  9. package/DEV_README.md +39 -0
  10. package/LICENSE +20 -0
  11. package/README_EN.md +46 -0
  12. package/build.sh +44 -0
  13. package/docg.config.js +65 -0
  14. package/env/byteplus.js +30 -0
  15. package/env/volcengine.js +50 -0
  16. package/fixtures/favicon.ico +0 -0
  17. package/fixtures/index.base.js +59 -0
  18. package/fixtures/index.html +41 -0
  19. package/fixtures/index.js +185 -0
  20. package/libd.config.js +147 -0
  21. package/localhost+2-key.pem +28 -0
  22. package/localhost+2.pem +26 -0
  23. package/lux.config.mjs +37 -0
  24. package/package.json +123 -4
  25. package/sdkhub.config.json +10 -0
  26. package/src/@types/global.d.ts +35 -0
  27. package/src/assets/common/error.svg +3 -0
  28. package/src/assets/common/errorImg.png +0 -0
  29. package/src/assets/common/errorImg.svg +12 -0
  30. package/src/assets/icons/mobile/definition.svg +3 -0
  31. package/src/assets/icons/mobile/line.svg +3 -0
  32. package/src/assets/icons/mobile/mobileDanmu.svg +1 -0
  33. package/src/assets/icons/mobile/mobileDanmuAcitive.svg +1 -0
  34. package/src/assets/icons/mobile/mobileDanmuSetting.svg +1 -0
  35. package/src/assets/icons/mobile/mobileExitFullscreen.svg +1 -0
  36. package/src/assets/icons/mobile/mobileFullscreen.svg +1 -0
  37. package/src/assets/icons/mobile/mobilePause.svg +4 -0
  38. package/src/assets/icons/mobile/mobilePlay.svg +4 -0
  39. package/src/assets/icons/mobile/mobilePlaynext.svg +1 -0
  40. package/src/assets/icons/mobile/mobileRefresh.svg +1 -0
  41. package/src/assets/icons/mobile/more.svg +3 -0
  42. package/src/assets/icons/mobile/muted.svg +22 -0
  43. package/src/assets/icons/mobile/playbackrate.svg +3 -0
  44. package/src/assets/icons/pc/danmu.svg +1 -0
  45. package/src/assets/icons/pc/danmuActive.svg +1 -0
  46. package/src/assets/icons/pc/danmuSettings.svg +1 -0
  47. package/src/assets/icons/pc/download.svg +14 -0
  48. package/src/assets/icons/pc/exitFullscreen.svg +1 -0
  49. package/src/assets/icons/pc/exitMirror.svg +10 -0
  50. package/src/assets/icons/pc/extend.svg +1 -0
  51. package/src/assets/icons/pc/fullscreen.svg +1 -0
  52. package/src/assets/icons/pc/getMirror.svg +10 -0
  53. package/src/assets/icons/pc/list.svg +20 -0
  54. package/src/assets/icons/pc/noPoster.svg +119 -0
  55. package/src/assets/icons/pc/pause.svg +1 -0
  56. package/src/assets/icons/pc/pip.svg +1 -0
  57. package/src/assets/icons/pc/pipExit.svg +1 -0
  58. package/src/assets/icons/pc/play-next-btn.svg +4 -0
  59. package/src/assets/icons/pc/play.svg +1 -0
  60. package/src/assets/icons/pc/playNext.svg +1 -0
  61. package/src/assets/icons/pc/playerLoading.svg +1 -0
  62. package/src/assets/icons/pc/refresh.svg +1 -0
  63. package/src/assets/icons/pc/replay.svg +1 -0
  64. package/src/assets/icons/pc/reset.svg +6 -0
  65. package/src/assets/icons/pc/startPlay.svg +1 -0
  66. package/src/assets/icons/pc/subtitleclose.svg +5 -0
  67. package/src/assets/icons/pc/subtitleopen.svg +3 -0
  68. package/src/assets/icons/pc/theaterEnter.svg +1 -0
  69. package/src/assets/icons/pc/theaterExit.svg +1 -0
  70. package/src/assets/icons/pc/volumeLarge.svg +1 -0
  71. package/src/assets/icons/pc/volumeMuted.svg +1 -0
  72. package/src/assets/icons/pc/volumeSmall.svg +1 -0
  73. package/src/config/defaultPreset.ts +110 -0
  74. package/src/config/playerOptionMobile.ts +166 -0
  75. package/src/config/playerOptionPc.ts +147 -0
  76. package/src/config/playerPreset.ts +242 -0
  77. package/src/constants/api.ts +13 -0
  78. package/src/constants/event.ts +577 -0
  79. package/src/constants/player.ts +84 -0
  80. package/src/constants/plugin.ts +19 -0
  81. package/src/constants/umdMap.ts +137 -0
  82. package/src/constants/umdPlugins.json +68 -0
  83. package/src/core/index.ts +7 -0
  84. package/src/core/player.ts +2713 -0
  85. package/src/core/playerData.ts +812 -0
  86. package/src/env.d.ts +47 -0
  87. package/src/index.ts +24 -0
  88. package/src/index.umd.ts +54 -0
  89. package/src/interface/adaptRange.d.ts +33 -0
  90. package/src/interface/api.ts +132 -0
  91. package/src/interface/autoBitrate.d.ts +41 -0
  92. package/src/interface/index.ts +1685 -0
  93. package/src/interface/rtm.ts +56 -0
  94. package/src/interface/sdkErrorPlugin.ts +145 -0
  95. package/src/interface/subtitle.ts +381 -0
  96. package/src/interface/video.ts +107 -0
  97. package/src/interface/xgplayer.ts +748 -0
  98. package/src/lang/constants.ts +69 -0
  99. package/src/lang/en.ts +98 -0
  100. package/src/lang/index.ts +33 -0
  101. package/src/lang/jp.ts +100 -0
  102. package/src/lang/zh-hk.ts +80 -0
  103. package/src/lang/zh.ts +79 -0
  104. package/src/license/index.ts +315 -0
  105. package/src/license/ttlicense2.js +15 -0
  106. package/src/license/ttlicense2.wasm +0 -0
  107. package/src/music/icons/back.svg +3 -0
  108. package/src/music/icons/forward.svg +3 -0
  109. package/src/music/icons/loop.svg +10 -0
  110. package/src/music/icons/order.svg +10 -0
  111. package/src/music/icons/pause-circle.svg +23 -0
  112. package/src/music/icons/play-circle.svg +22 -0
  113. package/src/music/icons/random.svg +10 -0
  114. package/src/music/icons/sloop.svg +10 -0
  115. package/src/music/index.ts +5 -0
  116. package/src/music/music.ts +550 -0
  117. package/src/music/plugins/index.less +185 -0
  118. package/src/music/plugins/index.ts +6 -0
  119. package/src/music/plugins/musicBackward.ts +82 -0
  120. package/src/music/plugins/musicCover.ts +45 -0
  121. package/src/music/plugins/musicForward.ts +82 -0
  122. package/src/music/plugins/musicMeta.ts +32 -0
  123. package/src/music/plugins/musicMode.ts +152 -0
  124. package/src/music/plugins/musicNext.ts +93 -0
  125. package/src/music/plugins/musicPrev.ts +94 -0
  126. package/src/music/preset.ts +69 -0
  127. package/src/music/xhr.ts +37 -0
  128. package/src/plugins/common/extendPluginFactory.ts +132 -0
  129. package/src/plugins/common/mobilePlayerPanel.ts +253 -0
  130. package/src/plugins/external/LiveInfoPanel.ts +340 -0
  131. package/src/plugins/external/ad/adsPlugin.ts +1 -0
  132. package/src/plugins/external/aiSubtitleIconPlugin.ts +270 -0
  133. package/src/plugins/external/aiSubtitlePlugin.ts +452 -0
  134. package/src/plugins/external/definitionDemotePlugin.ts +591 -0
  135. package/src/plugins/external/memoryPlay.ts +247 -0
  136. package/src/plugins/external/mirrorPlugin.ts +141 -0
  137. package/src/plugins/external/playList/OptionList.ts +204 -0
  138. package/src/plugins/external/playList/index.ts +743 -0
  139. package/src/plugins/external/subtitle/index.ts +672 -0
  140. package/src/plugins/external/subtitle/nativeSubTitle.ts +115 -0
  141. package/src/plugins/external/timeShiftPlugin.ts +484 -0
  142. package/src/plugins/external/watermark/dynamicWatermark.less +13 -0
  143. package/src/plugins/external/watermark/dynamicWatermark.ts +449 -0
  144. package/src/plugins/external/watermark/dynamicWatermarkPlugin.ts +185 -0
  145. package/src/plugins/inner/common/autoplayPlugin.ts +435 -0
  146. package/src/plugins/inner/common/danmu/container.ts +120 -0
  147. package/src/plugins/inner/common/danmu/index.ts +683 -0
  148. package/src/plugins/inner/common/danmu/lang.ts +139 -0
  149. package/src/plugins/inner/common/danmu/panel.ts +20 -0
  150. package/src/plugins/inner/common/danmu/slider.ts +210 -0
  151. package/src/plugins/inner/common/danmu/state.ts +118 -0
  152. package/src/plugins/inner/common/danmu/switch.ts +74 -0
  153. package/src/plugins/inner/common/definitionBasePlugin.ts +353 -0
  154. package/src/plugins/inner/common/errorPlugin.ts +544 -0
  155. package/src/plugins/inner/common/liveLogger.ts +137 -0
  156. package/src/plugins/inner/common/poster/index.less +66 -0
  157. package/src/plugins/inner/common/poster/index.ts +178 -0
  158. package/src/plugins/inner/common/refreshPlugin.ts +88 -0
  159. package/src/plugins/inner/common/rtmPlugin.ts +62 -0
  160. package/src/plugins/inner/common/toastPlugin.ts +90 -0
  161. package/src/plugins/inner/common/unmutePlugin.ts +133 -0
  162. package/src/plugins/inner/common/vodLogger.ts +80 -0
  163. package/src/plugins/inner/mobile/DefinitionMobilePlugin.ts +217 -0
  164. package/src/plugins/inner/mobile/LineMobilePlugins.ts +169 -0
  165. package/src/plugins/inner/mobile/MoreButtonPlugin.ts +176 -0
  166. package/src/plugins/inner/mobile/PlaybackRatePlugin.ts +199 -0
  167. package/src/plugins/inner/pc/definitionPlugin.ts +203 -0
  168. package/src/plugins/inner/pc/multilinePlugin.ts +93 -0
  169. package/src/sdkPlugin/abr.ts +67 -0
  170. package/src/sdkPlugin/adaptRange.ts +49 -0
  171. package/src/sdkPlugin/authToken.ts +557 -0
  172. package/src/sdkPlugin/sdkPlugin.ts +125 -0
  173. package/src/sdkPlugin/sdkPluginManager.ts +157 -0
  174. package/src/sdkPlugin/strategy.ts +47 -0
  175. package/src/strategy/index.ts +740 -0
  176. package/src/strategy/vestrategy-h265-wrapper.ts +34 -0
  177. package/src/strategy/vestrategy-preload-wrapper.ts +414 -0
  178. package/src/streamAdapters/base.ts +89 -0
  179. package/src/streamAdapters/dash.ts +230 -0
  180. package/src/streamAdapters/default.ts +53 -0
  181. package/src/streamAdapters/hls.ts +278 -0
  182. package/src/streamAdapters/index.ts +40 -0
  183. package/src/streamAdapters/mp4.ts +214 -0
  184. package/src/style/bytelive/danmu.less +293 -0
  185. package/src/style/bytelive/definitionIcon.less +80 -0
  186. package/src/style/bytelive/error.less +165 -0
  187. package/src/style/bytelive/index.less +62 -0
  188. package/src/style/bytelive/loading.less +5 -0
  189. package/src/style/bytelive/mobiePlugin.less +2 -0
  190. package/src/style/bytelive/mobile.less +76 -0
  191. package/src/style/bytelive/moreButton.less +79 -0
  192. package/src/style/bytelive/panel.less +259 -0
  193. package/src/style/bytelive/pc.less +161 -0
  194. package/src/style/bytelive/refresh.less +3 -0
  195. package/src/style/bytelive/reset.less +4 -0
  196. package/src/style/bytelive/toast.less +61 -0
  197. package/src/style/bytelive/unmute.less +65 -0
  198. package/src/style/external/LiveInfoPanel.less +41 -0
  199. package/src/style/external/aisub.less +139 -0
  200. package/src/style/external/aisubIcon.less +25 -0
  201. package/src/style/external/index.less +5 -0
  202. package/src/style/external/larkWindow.less +36 -0
  203. package/src/style/external/mirror.less +27 -0
  204. package/src/style/external/playList.less +258 -0
  205. package/src/style/external/timeShift.less +102 -0
  206. package/src/style/external/vttSubtitle.less +25 -0
  207. package/src/utils/debug.ts +62 -0
  208. package/src/utils/definition.ts +61 -0
  209. package/src/utils/escapeHtml.ts +93 -0
  210. package/src/utils/eventMiddleWare.ts +108 -0
  211. package/src/utils/index.ts +621 -0
  212. package/src/utils/intervalTimer.ts +38 -0
  213. package/src/utils/isHijackBrowser.ts +71 -0
  214. package/src/utils/proxy.ts +139 -0
  215. package/src/utils/storage.ts +34 -0
  216. package/src/utils/time.ts +19 -0
  217. package/src/utils/toast/index.less +20 -0
  218. package/src/utils/toast/index.ts +21 -0
  219. package/src/utils/token.ts +395 -0
  220. package/src/utils/u8a.ts +4 -0
  221. package/src/utils/umdLoader.ts +193 -0
  222. package/src/utils/video.ts +43 -0
  223. package/src/utils/xhr.ts +160 -0
  224. package/src/veError/error.ts +301 -0
  225. package/src/veError/index.ts +681 -0
  226. package/src/veError/playerProxy.ts +69 -0
  227. package/tsconfig.json +27 -0
  228. package/index.d.ts +0 -6874
  229. package/index.min.css +0 -1
  230. package/index.min.js +0 -2
  231. package/plugin/DashAbralgo.js +0 -2
  232. package/plugin/XGVideo.js +0 -2
  233. package/plugin/danmuMask.js +0 -2
  234. package/plugin/danmujs.js +0 -3
  235. package/plugin/dash.js +0 -2
  236. package/plugin/flv.js +0 -2
  237. package/plugin/hls.js +0 -2
  238. package/plugin/hlsEncrypt.js +0 -2
  239. package/plugin/mp4Encrypt.js +0 -2
  240. package/plugin/preloader.js +0 -2
  241. package/plugin/streamprobe.js +0 -2
  242. package/plugin/vestrategy.js +0 -1
  243. package/plugin/vestrategy_adapt_range.js +0 -1
  244. package/plugin/vestrategy_h265.js +0 -1
  245. package/plugin/vestrategy_preload.js +0 -1
@@ -0,0 +1,577 @@
1
+ /** {zh}
2
+ * @brief 播放器媒体事件。由浏览器 `video` 元素触发,SDK 代理。
3
+ * @detail Event
4
+ * @name MediaEvents
5
+ * @kind event
6
+ * @example
7
+ * 监听播放错误
8
+ * ```
9
+ * playerSdkIns.on(VePlayer.Events.ERROR, (error) => {
10
+ * // error 处理
11
+ * })
12
+ * ```
13
+ * 监听播放
14
+ * ```
15
+ * playerSdkIns.on(VePlayer.Events.PLAY, () => {
16
+ * // TODO after play
17
+ * })
18
+ * ```
19
+ * 监听播放时间更新
20
+ * ```
21
+ * playerSdkIns.on(VePlayer.Events.TIME_UPDATE, (data) => {
22
+ * const { currentTime } = data;
23
+ * console.log('currentTime: ', currentTime);
24
+ * })
25
+ * ```
26
+ */
27
+ /** {en}
28
+ * @detail Event
29
+ * @name MediaEvents
30
+ * @kind event
31
+ * @brief Player media events. Triggered by the browser's `video` element, and proxied by the SDK.
32
+ */
33
+ export const MediaEvents = {
34
+ /** {zh}
35
+ * @brief 在播放被终止时触发。例如当播放中的视频重新开始播放。
36
+ */
37
+ ABORT: 'abort',
38
+ /** {zh}
39
+ * @brief 视频缓冲足够数据、可以播放时触发。
40
+ */
41
+ CANPLAY: 'canplay',
42
+ /** {zh}
43
+ * @brief 视频可以流畅播放时触发。
44
+ */
45
+ CANPLAY_THROUGH: 'canplaythrough',
46
+ /** {zh}
47
+ * @brief 视频时长发生变化时触发。
48
+ */
49
+ DURATION_CHANGE: 'durationchange',
50
+ /** {zh}
51
+ * @deprecated
52
+ * @brief (已废弃)媒体被清空时触发,通常是由于初始化。
53
+ */
54
+ EMPITED: 'empited',
55
+ /** {zh}
56
+ * @brief 媒体被清空时触发,通常是由于初始化。
57
+ */
58
+ EMPTIED: 'emptied',
59
+ /** {zh}
60
+ * @brief 视频播放完毕时触发。
61
+ */
62
+ /** {en}
63
+ * @brief Video playback ends.
64
+ */
65
+ ENDED: 'ended',
66
+ /** {zh}
67
+ * @brief 发生错误时触发。
68
+ */
69
+ ERROR: 'error',
70
+ /** {zh}
71
+ * @brief 视频起播数据加载完成时触发。
72
+ */
73
+ LOADED_DATA: 'loadeddata',
74
+ /** {zh}
75
+ * @brief 媒体的元数据已加载完毕,`playerSdkIns.player.video` 可获取所有的 `video` 属性。
76
+ */
77
+ LOADED_META_DATA: 'loadedmetadata',
78
+ /** {zh}
79
+ * @brief 媒体内容开始加载时触发。
80
+ */
81
+ LOAD_START: 'loadstart',
82
+ /** {zh}
83
+ * @brief 视频暂停播放时触发。
84
+ */
85
+ /** {en}
86
+ * @brief Video playback pauses.
87
+ */
88
+ PAUSE: 'pause',
89
+ /** {zh}
90
+ * @brief 视频开始播放时触发。
91
+ */
92
+ /** {en}
93
+ * @brief Video playback starts.
94
+ */
95
+ PLAY: 'play',
96
+ /** {zh}
97
+ * @brief 恢复播放时触发,包括暂停后恢复播放或卡顿后恢复播放。
98
+ */
99
+ /** {en}
100
+ * @brief Video playback resumes after a pause or freeze.
101
+ */
102
+ PLAYING: 'playing',
103
+ /** {zh}
104
+ * @brief 报告媒体下载进度,即已缓存播放数据进度。
105
+ */
106
+ PROGRESS: 'progress',
107
+ /** {zh}
108
+ * @brief 播放速率变化时触发。
109
+ */
110
+ RATE_CHANGE: 'ratechange',
111
+ /** {zh}
112
+ * @brief Seek 操作完成时触发。
113
+ */
114
+ SEEKED: 'seeked',
115
+ /** {zh}
116
+ * @brief Seek 操作开始时触发。
117
+ */
118
+ SEEKING: 'seeking',
119
+ /** {zh}
120
+ * @brief 在尝试获取媒体数据、但数据不可用时触发。
121
+ */
122
+ STALLED: 'stalled',
123
+ /** {zh}
124
+ * @brief 媒体资源加载终止时触发。这可能是因为下载已完成或因为其他原因暂停。
125
+ */
126
+ SUSPEND: 'suspend',
127
+ /** {zh}
128
+ * @brief 视频播放时间更新时触发。
129
+ */
130
+ /** {en}
131
+ * @brief The video playback time is updated.
132
+ */
133
+ TIME_UPDATE: 'timeupdate',
134
+ /** {zh}
135
+ * @brief 视频音量发生变化时触发。
136
+ */
137
+ /** {en}
138
+ * @brief The video volume changes.
139
+ */
140
+ VOLUME_CHANGE: 'volumechange',
141
+ /** {zh}
142
+ * @brief 等待加载数据时触发。
143
+ */
144
+ /** {en}
145
+ * @brief The player is loading data.
146
+ */
147
+ WAITING: 'waiting',
148
+ };
149
+
150
+ /** {zh}
151
+ * @detail Event
152
+ * @brief SDK 事件,由 SDK 内部触发。
153
+ * @name SDKEvents
154
+ * @kind event
155
+ * @example
156
+ * 监听播放器创建完成
157
+ * ```
158
+ * playerSdkIns.on(VePlayer.Events.COMPLETE, () => {
159
+ * // can execute the apis and get the attributes of player core after sdk build complete
160
+ * console.log('player core: ', playerSdkIns.player);
161
+ * })
162
+ * ```
163
+ * 监听清晰度切换
164
+ * ```
165
+ * playerSdkIns.on(VePlayer.Events.DEFINITION_CHANGE, (data) => {
166
+ * const { to } = data;
167
+ * const { definition, url } = to;
168
+ * console.log('target definition is ', definition);
169
+ * console.log('target url is ', url);
170
+ * })
171
+ * ```
172
+ * 监听全屏状态切换
173
+ * ```
174
+ * playerSdkIns.on(VePlayer.Events.FULLSCREEN_CHANGE, (isFullScreen) => {
175
+ * console.log('current fullscreen: ', isFullScreen);
176
+ * })
177
+ * ```
178
+ */
179
+ /** {en}
180
+ * @detail Event
181
+ * @name SDKEvents
182
+ * @kind event
183
+ * @brief SDK events, triggered internally by the SDK.
184
+ */
185
+ export const SDKEvents = {
186
+ /** {zh}
187
+ * @brief 播放器实例创建完成时触发。
188
+ */
189
+ /** {en}
190
+ * @brief The player is instantiated.
191
+ */
192
+ READY: 'ready',
193
+ /** {zh}
194
+ * @brief 播放器创建 `video` 完成时触发,表示可以开始播放。
195
+ */
196
+ /** {en}
197
+ * @brief The player has created the video and the playback is ready to start.
198
+ */
199
+ COMPLETE: 'complete',
200
+ /** {zh}
201
+ * @brief 播放资源发生变化。
202
+ */
203
+ /** {en}
204
+ * @brief The playback address changes.
205
+ */
206
+ URL_CHANGE: 'urlchange',
207
+ /** {zh}
208
+ * @brief 播放器聚焦,同时会展示 Control 栏控件,包含播放按钮、进度条等。
209
+ */
210
+ /** {en}
211
+ * @brief The player is active and the control bar will appear showing options like play button, progress bar, and other controls.
212
+ */
213
+ PLAYER_FOCUS: 'focus',
214
+ /** {zh}
215
+ * @brief 播放器失焦,同时会隐藏 Control 栏控件,包含播放按钮、进度条等。
216
+ */
217
+ /** {en}
218
+ * @brief The player is inactive and the control bar will vanish, hiding options such as the play button, progress bar, and other controls.
219
+ */
220
+ PLAYER_BLUR: 'blur',
221
+ /** {zh}
222
+ * @brief 系统全屏状态切换。
223
+ */
224
+ /** {en}
225
+ * @brief The player switches to or from full-window mode, in which the player covers the entire desktop.
226
+ */
227
+ FULLSCREEN_CHANGE: 'fullscreen_change',
228
+ /** {zh}
229
+ * @brief 网页全屏状态切换。
230
+ */
231
+ /** {en}
232
+ * @brief The player switches to or from full-screen mode, in which the player covers the browser window.
233
+ */
234
+ CSS_FULLSCREEN_CHANGE: 'cssFullscreen_change',
235
+ /** {zh}
236
+ * @brief 画中画模式切换。
237
+ */
238
+ MINI_STATE_CHANGE: 'mini_state_change',
239
+ /** {zh}
240
+ * @brief 播放器销毁。
241
+ */
242
+ /** {en}
243
+ * @brief The player is destroyed.
244
+ */
245
+ DESTROY: 'destroy',
246
+ /** {zh}
247
+ * @brief 播放器重新播放。
248
+ */
249
+ /** {en}
250
+ * @brief Replay starts.
251
+ */
252
+ REPLAY: 'replay',
253
+ /** {zh}
254
+ * @brief 播放器重试。
255
+ */
256
+ RETRY: 'retry',
257
+ /** {zh}
258
+ * @brief 清晰度发生变化
259
+ */
260
+ /** {en}
261
+ * @brief The video resolution changes.
262
+ */
263
+ DEFINITION_CHANGE: 'definition_change',
264
+ /** {zh}
265
+ * @hidden
266
+ */
267
+ /** {en}
268
+ * @hidden
269
+ */
270
+ Before_DEFINITION_CHANGE: 'before_definition_change',
271
+ /** {zh}
272
+ * @hidden
273
+ */
274
+ /** {en}
275
+ * @hidden
276
+ */
277
+ AFTER_DEFINITION_CHANGE: 'after_definition_change',
278
+ /** {zh}
279
+ * @brief 播放器容器尺寸发生变化。
280
+ */
281
+ /** {en}
282
+ * @brief The size of the player container changes.
283
+ */
284
+ VIDEO_RESIZE: 'video_resize',
285
+ /** {zh}
286
+ * @brief 画中画状态切换。
287
+ */
288
+ /** {en}
289
+ * @brief The player switches to or from Picture-in-Picture (PIP) mode.
290
+ */
291
+ PIP_CHANGE: 'pip_change',
292
+ /** {zh}
293
+ * @brief 播放器发生旋转。
294
+ */
295
+ /** {en}
296
+ * @brief The player is rotated.
297
+ */
298
+ ROTATE: 'rotate',
299
+ /** {zh}
300
+ * @brief 播放器内置快捷键事件被触发。
301
+ */
302
+ /** {en}
303
+ * A built-in shortcut event occurs within the player.
304
+ */
305
+ SHORTCUT: 'shortcut',
306
+ /** {zh}
307
+ * @deprecated
308
+ * @brief (已废弃)SEI 信息解析。
309
+ */
310
+ /** {en}
311
+ * @deprecated
312
+ * @brief The player parses the SEI information.
313
+ */
314
+ SEI_PARSED: 'SEI_PARSED',
315
+ /** {zh}
316
+ * @brief 内置插件用户行为触发。所有内置插件用户行为交互都会下发该事件,可用于用户行为埋点。
317
+ */
318
+ /** {en}
319
+ * @brief A user event occurs within a built-in plug-in. This event applies to all built-in plug-ins and can be used for tracking user behaviors.
320
+ */
321
+ USER_ACTION: 'user_action',
322
+ /** {zh}
323
+ * @brief 自动播放成功时触发。
324
+ */
325
+ /** {en}
326
+ * @brief Autoplay starts successfully.
327
+ */
328
+ AUTOPLAY_STARTED: 'autoplay_started',
329
+ /** {zh}
330
+ * @brief 自动播放失败时触发。
331
+ */
332
+ /** {en}
333
+ * @brief Autoplay fails to start.
334
+ */
335
+ AUTOPLAY_PREVENTED: 'autoplay_was_prevented',
336
+ /** {zh}
337
+ * @brief 播放器完成创建。
338
+ */
339
+ PLAYER_CREATED_FINISH: 'player_create_finish',
340
+ /** {zh}
341
+ * @brief 播放器重建。
342
+ */
343
+ PLAYER_REBUILD: 'player_rebuild',
344
+ /** {zh}
345
+ * @brief 硬解不支持时触发。
346
+ */
347
+ NOT_SUPPORT_HARDWARE_DECODER: 'not_support_hardware_decoder',
348
+ /** {zh}
349
+ * @brief 软解不支持时触发。
350
+ */
351
+ NOT_SUPPORT_SOFT_DECODER: 'not_support_soft_decoder',
352
+ /** {zh}
353
+ * @brief `playAuthToken` 过期。
354
+ */
355
+ TOKEN_EXPIRED: 'playAuthToken_expired',
356
+ /** {zh}
357
+ * @brief UMD 加载失败。
358
+ */
359
+ UMD_LOAD_FAIL: 'umd_load_fail',
360
+ /** {zh}
361
+ * @brief 切换下一个视频。调用 `playNext` 后触发。
362
+ */
363
+ PLAYNEXT: 'playnext',
364
+ /** {zh}
365
+ * @brief 视频地址为空。
366
+ */
367
+ URL_NULL: 'urlNull',
368
+ /** {zh}
369
+ * @brief 鼠标移出。
370
+ */
371
+ LEAVE_PLAYER: 'leaveplayer',
372
+ /** {zh}
373
+ * @brief 鼠标移入。
374
+ */
375
+ ENTER_PLAYER: 'enterplayer',
376
+ /** {zh}
377
+ * @brief 播放器状态重置。
378
+ */
379
+ RESET: 'reset',
380
+ /** {zh}
381
+ * @brief `<source>` 加载错误,表示 `<source>` 不支持或播放失败。
382
+ */
383
+ SOURCE_ERROR: 'source_error',
384
+ /** {zh}
385
+ * @brief `<source>` 加载成功。
386
+ */
387
+ SOURCE_SUCCESS: 'source_success',
388
+
389
+ /** {zh}
390
+ * @brief license 提醒
391
+ */
392
+ LICENSE_STATUS_WARNING: 'license_status_warning',
393
+ };
394
+
395
+ /** {zh}
396
+ * @detail Event
397
+ * @brief 插件事件,由插件内部触发。
398
+ * @name PluginEvents
399
+ * @kind event
400
+ * @example
401
+ * 监听自动播放成功
402
+ * ```
403
+ * playerSdkIns.on(VePlayer.Events.AUTOPLAY_SUCCESS, () => {
404
+ * // TODO something
405
+ * })
406
+ * ```
407
+ *
408
+ */
409
+ /** {en}
410
+ * @detail Event
411
+ * @name PluginEvents
412
+ * @kind event
413
+ */
414
+ export const PluginEvents = {
415
+ /** {zh}
416
+ * @brief 弹幕配置发生变化。
417
+ */
418
+ DANMU_CHANGE: 'danmu_change',
419
+ /** {zh}
420
+ * @hidden
421
+ */
422
+ TIME_SHIFT_CHANGE: 'time_shift_change', // 切换时移状态
423
+ /** {zh}
424
+ * @hidden
425
+ */
426
+ AI_SUBTITLE_LANG_CHANGE: 'ai_subtitle_lang_change', // ai字幕语言切换
427
+ /** {zh}
428
+ * @hidden
429
+ */
430
+ AI_SUBTITLE_MATCH: 'ai_subtitle_match', // ai字幕匹配
431
+ /** {zh}
432
+ * @brief 取消静音。
433
+ */
434
+ CANCEL_UNMUTE: 'cancel_unmute',
435
+ /** {zh}
436
+ * @brief 刷新按钮被点击。
437
+ */
438
+ REFRESH_CLICK: 'refresh_click',
439
+ /** {zh}
440
+ * @brief 发生报错,卡顿时,在同清晰度等级下,触发降级至 fallbackUrl。
441
+ */
442
+ PLAY_BACKUP_CHANGE: 'play_backup_change', // { currentUrl: String, nextUrl: String, retryTimes: Number }
443
+ /** {zh}
444
+ * @brief 发生报错,卡顿时,在同清晰度等级下,触发降级至 fallbackUrl, 所有可执行降级结束,无可用 fallbackUrl
445
+ */
446
+ PLAY_BACKUP_CHANGE_FINISH: 'play_backup_change_finish',
447
+ /** {zh}
448
+ * @brief 报错时触发重试。
449
+ */
450
+ PLAY_ERROR_BUTTON_CLICK: 'play_error_button_click',
451
+ /** {zh}
452
+ * @brief 播放 URL 改变。
453
+ */
454
+ PlAY_URL_CHANGE: 'play_url_change', // {url:String , from: String}
455
+ /** {zh}
456
+ * @brief 展示报错。
457
+ */
458
+ SHOW_PLAY_ERROR: 'show_play_error',
459
+ /** {zh}
460
+ * @hidden
461
+ */
462
+ PLAYER_EXTEND_BUTTON: 'player_extend_button',
463
+ /** {zh}
464
+ * @brief 发生长时间卡顿时触发。播放器会在事件发生时自动进行清晰度降级或提醒用户手动切换晰度降级。
465
+ */
466
+ LONG_WAITING: 'long_waiting', // 长时间waiting
467
+ /** {zh}
468
+ * @brief 发生频繁卡顿时触发。
469
+ */
470
+ OFTEN_WAITING: 'often_waiting', // 频繁waiting
471
+ /** {zh}
472
+ * @brief 清晰度降级。
473
+ */
474
+ DEFINITION_DEMOTE: 'definition_demote', // 清晰度降级 {currentDef,willChangeDef,next}
475
+ /** {zh}
476
+ * @brief 已降至最低清晰度。
477
+ */
478
+ DEFINITION_DEMOTE_ALL_DONE: 'definition_demote_all_done', // 已降至最低清晰度
479
+ /** {zh}
480
+ * @brief 所有可执行的降级操作均执行完毕。如果用户同时开启了 definition 降级和 fallbackUrl 降级,
481
+ * 无论两者哪个优先级更高,待所有可执行的降级操作均执行完毕,会触发该事件。
482
+ */
483
+ DEMOTE_ALL_DONE: 'demote_all_done', // 所有可执行的降级操作均执行完毕
484
+ /** {zh}
485
+ * @hidden
486
+ */
487
+ LARKWINDOW_CHANGE: 'larkWindow_change', // 飞书小窗状态切换
488
+ /** {zh}
489
+ * @hidden
490
+ */
491
+ PANEL_MODE_CHANGE: 'panel_mode_change', // 移动端面板模式切换
492
+ /** {zh}
493
+ * @brief 清晰度切换。
494
+ */
495
+ INNER_DEFINITION_CHANGE: 'inner_definition_change', // 清晰度切换
496
+ /** {zh}
497
+ * @brief 线路切换。
498
+ */
499
+ LINE_CHANGE: 'line_change', // 线路切换
500
+ /** {zh}
501
+ * @brief 播放器通过 `playAuthToken` 获取 URL 失败。
502
+ */
503
+ GET_PLAY_URL_ERR: 'get_play_url_err', // playAuthToken获取url失败
504
+ /** {zh}
505
+ * @brief 资源过期。
506
+ */
507
+ MEDIA_EXPIRED: 'MEDIA_EXPIRED',
508
+ /** {zh}
509
+ * @brief 镜像开启。
510
+ */
511
+ MIRROR_CHANGE: 'mirror_change',
512
+ /** {zh}
513
+ * @brief 音乐播放器快进或快退。
514
+ */
515
+ TIME_SCALE_CHANGE: 'time_scale_change',
516
+ /** {zh}
517
+ * @brief 音乐播放模式切换。
518
+ */
519
+ MUSIC_MODE_CHANGE: 'music_mode_change',
520
+ /** {zh}
521
+ * @brief 音乐播放模式下切换音乐。
522
+ */
523
+ MUSIC_CHANGE: 'music_change',
524
+ /** {zh}
525
+ * @brief 音乐播放列表发生变化。
526
+ */
527
+ MUSIC_LIST_CHANGE: 'music_list_change',
528
+ /** {zh}
529
+ * @brief 自动播放成功。
530
+ */
531
+ AUTOPLAY_SUCCESS: 'autoplay_success',
532
+ /** {zh}
533
+ * @brief 自动播放失败。
534
+ */
535
+ AUTOPLAY_FAILED: 'autoplay_failed',
536
+ /** {zh}
537
+ * @brief 右键菜单事件。事件 `data` 中包含具体信息。
538
+ */
539
+ MENU_LOG: 'MENU_LOG',
540
+ /** {zh}
541
+ * @brief 点击了右键菜单的反馈按钮。
542
+ */
543
+ MENU_REPORT: 'MENU_REPORT',
544
+ /** {zh}
545
+ * @brief 播放列表更新。
546
+ */
547
+ PLAY_LIST_CHANGE: 'play_list_change',
548
+ /** {zh}
549
+ * @brief 播放列表播放项变更。
550
+ */
551
+ PLAY_LIST_ITEM_CHANGE: 'play_list_item_change',
552
+ /** {zh}
553
+ * @brief `playNext` 开始。
554
+ */
555
+ PLAY_NEXT_START: 'play_next_start',
556
+ /** {zh}
557
+ * @brief `playNext` 结束。
558
+ */
559
+ PLAY_NEXT_END: 'play_next_end',
560
+ /** {zh}
561
+ * @brief 多码率自适应播放时,自动挡位对应的清晰度改变。
562
+ */
563
+ ABR_AUTO_DESC_CHANGE: 'ABR_AUTO_DESC_CHANGE',
564
+ };
565
+
566
+ const Events = {
567
+ ...MediaEvents,
568
+ ...SDKEvents,
569
+ ...PluginEvents,
570
+ };
571
+
572
+ // 兼容旧的导出
573
+ export const Event = {
574
+ SDKEvents,
575
+ PluginEvents,
576
+ };
577
+ export default Events;
@@ -0,0 +1,84 @@
1
+ export const DefinitionLinked: any = {
2
+ origin: {
3
+ index: 1,
4
+ next: 'uhd',
5
+ prev: null,
6
+ },
7
+ uhd: {
8
+ index: 2,
9
+ next: 'hd',
10
+ prev: 'origin',
11
+ },
12
+ hd: {
13
+ index: 3,
14
+ next: 'sd',
15
+ prev: 'uhd',
16
+ },
17
+ sd: {
18
+ index: 4,
19
+ next: 'ld',
20
+ prev: 'hd',
21
+ },
22
+ ld: {
23
+ index: 5,
24
+ next: 'ao',
25
+ prev: 'sd',
26
+ },
27
+ ao: {
28
+ index: 6,
29
+ next: null,
30
+ prev: 'ld',
31
+ },
32
+ };
33
+
34
+ export const PLAYER_LANGS = ['zh', 'en', 'jp', 'zh-hk'];
35
+
36
+ // 移动端播放器模式
37
+ export const PLAYER_MODE = {
38
+ NORMAL: 0,
39
+ INNER: 1,
40
+ FULLSCREEN: 2,
41
+ };
42
+
43
+ // 视频状态:https://bytedance.feishu.cn/wiki/wikcnpqNM9c8P8Cp8zBSco3oOKe#Ro7GZU
44
+ export enum VIDEO_STATUS_TYPE {
45
+ VALID = 10,
46
+ TRANSCODING = 30,
47
+ NO_SET_AUDIT = 1000,
48
+ OFFLINE = 1002,
49
+ NO_AUTH = 2001,
50
+ UN_AUTH = 2002,
51
+ }
52
+
53
+ /**
54
+ * 无限大时间戳: 单位秒
55
+ */
56
+ export const MAX_TIMESTAMP = 5000000000;
57
+
58
+ /**
59
+ * 地址过期检查的默认diff,即距离过期时间还剩多少时就判定过期,单位秒
60
+ */
61
+ export const DEFAULT_URL_EXPIRE_DIFF = 60;
62
+
63
+ /**
64
+ * 地址过期检查的默认间隔,单位毫秒
65
+ */
66
+ export const DEFAULT_URL_CHECK_EXPIRE_INTERVAL = 400;
67
+
68
+ /**
69
+ * 触发MEDIA_EXPIRED事件的最小间隔: 单位秒
70
+ */
71
+ export const MIN_EXPIRE_INTERVAL = 300;
72
+
73
+ export const cancelTips = {
74
+ jp: 'キャンセル',
75
+ en: 'Cancel',
76
+ zh: '取消',
77
+ 'zh-hk': '取消',
78
+ };
79
+
80
+ export const enum KeySystemType {
81
+ WIDEVINE = 'widevine',
82
+ FAIRPLAY = 'fairplay',
83
+ PLAYREADY = 'playready',
84
+ }
@@ -0,0 +1,19 @@
1
+ /*
2
+ * 与plugin相关的常量
3
+ */
4
+
5
+ // control栏icon的顺序权重,值越小,越靠近右侧
6
+ // key为插件名称
7
+ export const CONTROL_ICON_INDEX: { [key: string]: number } = {
8
+ sdkDefinitionPlugin: 30, // 清晰度
9
+ DanmuPlugin: 30, // 弹幕
10
+ sdkMultilinePlugin: 40, // 多线路
11
+ mirrorPlugin: 50, // 镜像
12
+ Subtitle: 60, // 字幕
13
+ };
14
+
15
+ export const CONTROL_LEFT_ICON_INDEX: { [key: string]: number } = {
16
+ playListPlugin: 20, // 播放列表
17
+ };
18
+
19
+ export const OLD_UNMUTE_PLUGIN_LOWERCASE_NAME = 'sdkunmuteplugin';