1 | import { ComponentType } from 'react'
|
2 | import { StandardProps, CommonEventFunction } from './common'
|
3 | interface VideoProps extends StandardProps {
|
4 | /** 要播放视频的资源地址
|
5 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
6 | */
|
7 | src: string
|
8 | /** 指定视频时长
|
9 | * @supported weapp, alipay, qq, h5, rn, harmony, harmony_hybrid
|
10 | */
|
11 | duration?: number
|
12 | /** 是否显示默认播放控件(播放/暂停按钮、播放进度、时间)
|
13 | * @default true
|
14 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
15 | */
|
16 | controls?: boolean
|
17 | /** 弹幕列表
|
18 | * @supported weapp, swan, qq, h5, harmony_hybrid
|
19 | */
|
20 | danmuList?: any[]
|
21 | /** 是否显示弹幕按钮,只在初始化时有效,不能动态变更
|
22 | * @default false
|
23 | * @supported weapp, swan, qq, h5, harmony_hybrid
|
24 | */
|
25 | danmuBtn?: boolean
|
26 | /** 是否展示弹幕,只在初始化时有效,不能动态变更
|
27 | * @default false
|
28 | * @supported weapp, swan, qq, h5, harmony_hybrid
|
29 | */
|
30 | enableDanmu?: boolean
|
31 | /** 是否自动播放
|
32 | * @default false
|
33 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
34 | */
|
35 | autoplay?: boolean
|
36 | /** 是否循环播放
|
37 | * @default false
|
38 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
39 | */
|
40 | loop?: boolean
|
41 | /** 是否静音播放
|
42 | * @default false
|
43 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
44 | */
|
45 | muted?: boolean
|
46 | /** 指定视频初始播放位置
|
47 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony_hybrid
|
48 | */
|
49 | initialTime?: number
|
50 | /** 在非全屏模式下,是否开启亮度与音量调节手势
|
51 | * @default false
|
52 | * @supported weapp, swan, qq
|
53 | */
|
54 | pageGesture?: boolean
|
55 | /** 设置全屏时视频的方向,不指定则根据宽高比自动判断。有效值为 0(正常竖向), 90(屏幕逆时针90度), -90(屏幕顺时针90度)
|
56 | * @supported weapp, alipay, swan, tt, qq
|
57 | */
|
58 | direction?: number
|
59 | /** 若不设置,宽度大于240时才会显示
|
60 | * @default true
|
61 | * @supported weapp, swan, qq, h5, harmony_hybrid
|
62 | */
|
63 | showProgress?: boolean
|
64 | /** 是否显示全屏按钮
|
65 | * @default true
|
66 | * @supported weapp, alipay, swan, tt, qq, h5, harmony_hybrid
|
67 | */
|
68 | showFullscreenBtn?: boolean
|
69 | /** 是否显示视频底部控制栏的播放按钮
|
70 | * @default true
|
71 | * @supported weapp, alipay, swan, tt, qq, h5, harmony_hybrid
|
72 | */
|
73 | showPlayBtn?: boolean
|
74 | /** 是否显示视频中间的播放按钮
|
75 | * @default true
|
76 | * @supported weapp, alipay, swan, qq, h5, rn, harmony_hybrid
|
77 | */
|
78 | showCenterPlayBtn?: boolean
|
79 | /** 是否开启控制进度的手势
|
80 | * @default true
|
81 | * @supported weapp, alipay, swan, tt, qq, h5, harmony_hybrid
|
82 | */
|
83 | enableProgressGesture?: boolean
|
84 | /** 当视频大小与 video 容器大小不一致时,视频的表现形式
|
85 | * @default "contain"
|
86 | * @supported weapp, alipay, swan, tt, qq, jd, h5, harmony, harmony_hybrid
|
87 | */
|
88 | objectFit?: keyof VideoProps.ObjectFit
|
89 | /** 视频封面的图片网络资源地址,如果 controls 属性值为 false 则设置 poster 无效
|
90 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony_hybrid
|
91 | */
|
92 | poster?: string
|
93 | /** 是否显示静音按钮
|
94 | * @default false
|
95 | * @supported weapp, alipay, swan, tt, qq, h5, harmony_hybrid
|
96 | */
|
97 | showMuteBtn?: boolean
|
98 | /** 视频的标题,全屏时在顶部展示
|
99 | * @supported weapp, swan, qq
|
100 | */
|
101 | title?: string
|
102 | /** 播放按钮的位置
|
103 | * - `bottom`: controls bar 上
|
104 | * - `center`: 视频中间
|
105 | *
|
106 | * @default 'bottom'
|
107 | * @supported weapp, tt, qq
|
108 | */
|
109 | playBtnPosition?: keyof VideoProps.PlayBtnPosition
|
110 | /** 是否开启播放手势,即双击切换播放/暂停
|
111 | * @default false
|
112 | * @supported weapp, swan, tt, qq, h5, harmony_hybrid
|
113 | */
|
114 | enablePlayGesture?: boolean
|
115 | /** 当跳转到其它小程序页面时,是否自动暂停本页面的视频
|
116 | * @default true
|
117 | * @supported weapp, qq
|
118 | */
|
119 | autoPauseIfNavigate?: boolean
|
120 | /** 当跳转到其它微信原生页面时,是否自动暂停本页面的视频
|
121 | * @default true
|
122 | * @supported weapp, qq
|
123 | */
|
124 | autoPauseIfOpenNative?: boolean
|
125 | /** 在非全屏模式下,是否开启亮度与音量调节手势(同 `page-gesture`)
|
126 | * @default false
|
127 | * @supported weapp, swan, tt, h5, harmony_hybrid
|
128 | */
|
129 | vslideGesture?: boolean
|
130 | /** 在全屏模式下,是否开启亮度与音量调节手势
|
131 | * @default true
|
132 | * @supported weapp, swan, tt, h5, harmony_hybrid
|
133 | */
|
134 | vslideGestureInFullscreen?: boolean
|
135 | /** 视频前贴广告单元ID,更多详情可参考开放能力[视频前贴广告](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/ad/video-patch-ad.html)
|
136 | * @supported weapp
|
137 | */
|
138 | adUnitId?: string
|
139 | /** 用于给搜索等场景作为视频封面展示,建议使用无播放 icon 的视频封面图,只支持网络地址
|
140 | * @supported weapp
|
141 | */
|
142 | posterForCrawler?: string
|
143 | /** 显示投屏按钮。只安卓且同层渲染下生效,支持 DLNA 协议
|
144 | * @supported weapp
|
145 | */
|
146 | showCastingButton?: boolean
|
147 | /**
|
148 | * 设置小窗模式: push, pop,空字符串或通过数组形式设置多种模式(如: ["push", "pop"])
|
149 | * @supported weapp
|
150 | */
|
151 | pictureInPictureMode?: ('push' | 'pop')[] | 'push' | 'pop' | ''
|
152 | /**
|
153 | * 是否在小窗模式下显示播放进度(目前有bug,先注释掉)
|
154 | * @supported weapp
|
155 | *
|
156 | * 先注释掉,原因如下:
|
157 | * 该属性超过了 wxml 属性的长度限制,实际无法使用且导致编译报错。可等微信官方修复后再放开。
|
158 | * 参考1:https://developers.weixin.qq.com/community/develop/doc/000a429beb87f0eac07acc0fc5b400
|
159 | * 参考2: https://developers.weixin.qq.com/community/develop/doc/0006883619c48054286a4308258c00?_at=vyxqpllafi
|
160 | *
|
161 | */
|
162 | // pictureInPictureShowProgress?: boolean
|
163 |
|
164 | /**
|
165 | * 是否开启手机横屏时自动全屏,当系统设置开启自动旋转时生效
|
166 | * @supported weapp
|
167 | */
|
168 | enableAutoRotation?: boolean
|
169 | /**
|
170 | * 是否显示锁屏按钮,仅在全屏时显示,锁屏后控制栏的操作
|
171 | * @supported weapp, tt
|
172 | */
|
173 | showScreenLockButton?: boolean
|
174 | /**
|
175 | * 是否显示截屏按钮,仅在全屏时显示
|
176 | * @supported weapp
|
177 | */
|
178 | showSnapshotButton?: boolean
|
179 | /**
|
180 | * 是否展示后台音频播放按钮
|
181 | * @supported weapp
|
182 | */
|
183 | showBackgroundPlaybackButton?: boolean
|
184 | /**
|
185 | * 进入后台音频播放后的通知栏图标(Android 独有)
|
186 | * @supported weapp
|
187 | */
|
188 | backgroundPoster?: string
|
189 | /** 用于透传 `WebComponents` 上的属性到内部 H5 标签上
|
190 | * @supported h5, harmony_hybrid
|
191 | */
|
192 | nativeProps?: Record<string, unknown>
|
193 | /** 是否展示底部进度条
|
194 | * @supported weapp
|
195 | * @default true
|
196 | */
|
197 | showBottomProgress?: boolean
|
198 | /** 是否在小窗模式下显示播放进度
|
199 | * @supported weapp
|
200 | */
|
201 | pictureInPictureShowProgress?: string
|
202 | /** 格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本;
|
203 | * @supported weapp
|
204 | */
|
205 | referrerPolicy?: 'origin' | 'no-referrer'
|
206 | /** 是否是 DRM 视频源
|
207 | * @supported weapp
|
208 | */
|
209 | isDrm?: boolean
|
210 | /** DRM 设备身份认证 url,仅 is-drm 为 true 时生效 (Android)
|
211 | * @supported weapp
|
212 | */
|
213 | provisionUrl?: string
|
214 | /** DRM 设备身份认证 url,仅 is-drm 为 true 时生效 (iOS)
|
215 | * @supported weapp
|
216 | */
|
217 | certificateUrl?: string
|
218 | /** DRM 获取加密信息 url,仅 is-drm 为 true 时生效
|
219 | * @supported weapp
|
220 | */
|
221 | licenseUrl?: string
|
222 | /** 当 poster 高宽比跟视频高宽不匹配时,如何显示 poster,设置规则同 background-size 一致。
|
223 | * @supported alipay
|
224 | */
|
225 | posterSize?: string
|
226 | /** 当底部工具条隐藏时,是否显示细进度条(controls=false 时设置无效)。
|
227 | * @supported alipay
|
228 | */
|
229 | showThinProgressBar?: string
|
230 | /** 移动网络提醒样式。
|
231 | *
|
232 | * 0 - 不提醒
|
233 | * 1 - tip 提醒
|
234 | * 2 - 阻塞提醒(无消耗流量大小)
|
235 | * 3 - 阻塞提醒(有消耗流量大小提醒)
|
236 | *
|
237 | * @supported alipay, jd
|
238 | */
|
239 | mobilenetHintType?: number
|
240 | /** 浮窗设置。暂时不支持全局浮窗。
|
241 | * 可选值:
|
242 | *
|
243 | * none:无浮窗。
|
244 | * page:页面内浮窗。
|
245 | * @supported alipay
|
246 | */
|
247 | floatingMode?: string
|
248 | /** 非 wifi 环境下是否显示继续播放浮层
|
249 | * @supported swan
|
250 | */
|
251 | showNoWifiTip?: string
|
252 | /** 全屏模式下,是否显示锁屏按钮
|
253 | * @supported swan
|
254 | */
|
255 | showLockBtn?: string
|
256 | /** 是否显示倍速播放按钮
|
257 | * @supported swan
|
258 | */
|
259 | showRateBtn?: string
|
260 | /** 全屏模式下,是否显示侧边栏控制按钮
|
261 | * @supported swan
|
262 | */
|
263 | showVslideBtnInFullscreen?: string
|
264 | /** 是否进入无声视频模式,进入无声视频模式后,视频将静音播放且不响应系统物理音量变化,点击播放器提示无声视频,手势调节失效
|
265 | * @supported swan
|
266 | */
|
267 | silentPlay?: string
|
268 | /** 前贴广告的 unit id
|
269 | * @supported tt
|
270 | */
|
271 | preRollUnitId?: string
|
272 | /** 后贴广告的 unit id
|
273 | * @supported tt
|
274 | */
|
275 | postRollUnitId?: string
|
276 | /** 是否显示倍速控件,点击倍速控件后可选择倍速,可选值: 0.75/1.0/1.25/1.5/2
|
277 | * @supported tt
|
278 | */
|
279 | showPlaybackRateBtn?: string
|
280 | /** video 播放时宿主退出后台后开启小窗播放,iOS 14 及以上版本支持。开启时首次退出后台后给予弹窗提示用户授权,授权完成后可以到小程序「设置」中重设。支持场景见后台小窗播放
|
281 | * @supported tt
|
282 | */
|
283 | enablePlayInBackground?: string
|
284 | /** 设置署名水印
|
285 | * @supported tt
|
286 | */
|
287 | signature?: string
|
288 | /** 指定码率上界,单位为比特每秒
|
289 | * @supported weapp
|
290 | */
|
291 | preferredPeakBitRate?: number
|
292 | /** 是否为直播源
|
293 | * @supported weapp
|
294 | */
|
295 | isLive?: boolean
|
296 | /** 清晰度,设置清晰度列表和默认播放的清晰度。切换清晰度按钮仅在全屏时展示,属性说明详见 Definition 类型说明。需要保证 src 和 definition 中有一个为必填,若同时设置了 src 和 definition,definition 优先级高于 src
|
297 | * @supported tt
|
298 | */
|
299 | definition?: string
|
300 | /** 当开始/继续播放时触发 play 事件
|
301 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
302 | */
|
303 | onPlay?: CommonEventFunction
|
304 | /** 当暂停播放时触发 pause 事件
|
305 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
306 | */
|
307 | onPause?: CommonEventFunction
|
308 | /** 当播放到末尾时触发 ended 事件
|
309 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
310 | */
|
311 | onEnded?: CommonEventFunction
|
312 | /** 播放进度变化时触发, 触发频率 250ms 一次
|
313 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
314 | */
|
315 | onTimeUpdate?: CommonEventFunction<VideoProps.onTimeUpdateEventDetail>
|
316 | /** 当视频进入和退出全屏时触发
|
317 | *
|
318 | * @supported alipay, h5, rn, harmony, harmony_hybrid
|
319 | */
|
320 | onFullscreenChange?: CommonEventFunction<VideoProps.onFullscreenChangeEventDetail>
|
321 | /** 视频出现缓冲时触发
|
322 | *
|
323 | * @supported weapp, swan, tt, qq, jd
|
324 | */
|
325 | onWaiting?: CommonEventFunction<VideoProps.onWaitingEventDetail>
|
326 | /** 视频播放出错时触发
|
327 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony_hybrid
|
328 | */
|
329 | onError?: CommonEventFunction
|
330 | /** 加载进度变化时触发,只支持一段加载
|
331 | * @supported weapp, tt, qq, h5, harmony, harmony_hybrid
|
332 | */
|
333 | onProgress?: CommonEventFunction<VideoProps.onProgressEventDetail>
|
334 | /** 视频元数据加载完成时触发
|
335 | * @supported weapp, swan, tt, jd, rn, harmony
|
336 | */
|
337 | onLoadedMetaData?: CommonEventFunction<VideoProps.onLoadedMetaDataEventDetail>
|
338 | /**
|
339 | * 播放器进入小窗
|
340 | * @supported weapp
|
341 | */
|
342 | onEnterPictureInPicture?: CommonEventFunction
|
343 | /**
|
344 | * 播放器退出小窗
|
345 | * @supported weapp
|
346 | */
|
347 | onLeavePictureInPicture?: CommonEventFunction
|
348 | /**
|
349 | * seek 完成时触发
|
350 | * @supported weapp, tt
|
351 | */
|
352 | onSeekComplete?: CommonEventFunction
|
353 | /** 视频进入和退出全屏时触发
|
354 | * @supported weapp, alipay, swan, tt, qq, jd
|
355 | */
|
356 | onFullScreenChange?: CommonEventFunction<VideoProps.onFullscreenChangeEventDetail>
|
357 | /** 切换 controls 显示隐藏时触发。
|
358 | * @supported weapp, swan
|
359 | */
|
360 | onControlsToggle?: CommonEventFunction<VideoProps.onControlsToggleEventDetail>
|
361 | /** 视频出现缓冲时触发。
|
362 | * @supported alipay
|
363 | */
|
364 | onLoading?: CommonEventFunction
|
365 | /** 点击视频 view 时触发
|
366 | * @supported alipay
|
367 | */
|
368 | onTap?: CommonEventFunction<VideoProps.onTapEventDetail>
|
369 | /** 用户操作事件
|
370 | * @supported alipay
|
371 | */
|
372 | onUserAction?: CommonEventFunction<VideoProps.onUserActionEventDetail>
|
373 | /** 视频播放终止。
|
374 | * @supported alipay
|
375 | */
|
376 | onStop?: CommonEventFunction
|
377 | /** 当视频加载完真正开始播放时触发。
|
378 | * @supported alipay
|
379 | */
|
380 | onRenderStart?: CommonEventFunction
|
381 | /** 贴片广告开始播放时触发
|
382 | * @supported tt
|
383 | */
|
384 | onAdStart?: CommonEventFunction<VideoProps.onAdTypeCommonEventDetail>
|
385 | /** 贴片广告播放结束时触发
|
386 | * @supported tt
|
387 | */
|
388 | onAdEnded?: CommonEventFunction<VideoProps.onAdTypeCommonEventDetail>
|
389 | /** 贴片广告非自然结束时触发,如:用户关闭广告或广告播放过程中 video 组件被销毁
|
390 | * @supported tt
|
391 | */
|
392 | onAdClose?: CommonEventFunction<VideoProps.onAdTypeCommonEventDetail>
|
393 | /** 贴片广告加载失败时触发
|
394 | * @supported tt
|
395 | */
|
396 | onAdError?: CommonEventFunction<VideoProps.onAdTypeCommonEventDetail>
|
397 | /** 视频倍速改变完成时触发。返回改变后的倍速值
|
398 | * @supported tt
|
399 | */
|
400 | onPlayBackRateChange?: CommonEventFunction<{
|
401 | playbackRate: string
|
402 | }>
|
403 | /** 静音状态改变完成时触发。返回当前是否静音
|
404 | * @supported tt
|
405 | */
|
406 | onMuteChange?: CommonEventFunction<{
|
407 | isMuted: boolean
|
408 | }>
|
409 | /** 点击控件时触发。返回当前点击的控件类型
|
410 | * @supported tt
|
411 | */
|
412 | onControlTap?: CommonEventFunction<{
|
413 | controlType
|
414 | }>
|
415 | /** 进入小窗播放时触发
|
416 | * @supported tt
|
417 | */
|
418 | onEnterBackground?: CommonEventFunction
|
419 | /** 关闭小窗播放时触发
|
420 | * @supported tt
|
421 | */
|
422 | onCloseBackground?: CommonEventFunction
|
423 | /** 离开小窗进入 app 事件时触发
|
424 | * @supported tt
|
425 | */
|
426 | onLeaveBackground?: CommonEventFunction
|
427 | /** 否
|
428 | * @supported jd
|
429 | */
|
430 | onLoadedData?: CommonEventFunction
|
431 | /** 否
|
432 | * @supported jd
|
433 | */
|
434 | onLoadStart?: CommonEventFunction
|
435 | /** 否
|
436 | * @supported jd, harmony
|
437 | */
|
438 | onSeeked?: CommonEventFunction
|
439 | /** 否
|
440 | * @supported jd, harmony
|
441 | */
|
442 | onSeeking?: CommonEventFunction
|
443 | /** 贴片广告加载成功时触发,event.detail = { adType: 'preRollAd' | 'postRollAd' }
|
444 | * @supported tt
|
445 | */
|
446 | onAdLoad?: CommonEventFunction
|
447 | /** 用户选择投屏设备时触发 detail = { state: "success"/"fail" }
|
448 | * @supported weapp
|
449 | */
|
450 | onCastingUserSelect?: CommonEventFunction
|
451 | /** 投屏成功/失败时触发 detail = { type, state: "success"/"fail" }
|
452 | * @supported weapp
|
453 | */
|
454 | onCastingStateChange?: CommonEventFunction
|
455 | /** 投屏被中断时触发
|
456 | * @supported weapp
|
457 | */
|
458 | onCastingInterrupt?: CommonEventFunction
|
459 | }
|
460 | declare namespace VideoProps {
|
461 | /** direction 的合法值 */
|
462 | interface direction {
|
463 | /** 正常竖向 */
|
464 | 0
|
465 | /** 屏幕逆时针90度 */
|
466 | 90
|
467 | /** 屏幕顺时针90度 */
|
468 | '-90'
|
469 | }
|
470 | /** objectFit 的合法值 */
|
471 | interface ObjectFit {
|
472 | /** 包含 */
|
473 | contain
|
474 | /** 填充 */
|
475 | fill
|
476 | /** 覆盖 */
|
477 | cover
|
478 | }
|
479 | /** playBtnPosition 的合法值 */
|
480 | interface PlayBtnPosition {
|
481 | /** controls bar上 */
|
482 | bottom
|
483 | /** 视频中间 */
|
484 | center
|
485 | }
|
486 | interface onTimeUpdateEventDetail {
|
487 | /** 当前时间 */
|
488 | currentTime: number
|
489 | /** 持续时间 */
|
490 | duration: number
|
491 | /** 用户实际观看时长
|
492 | * @supported alipay
|
493 | */
|
494 | userPlayDuration: number
|
495 | /** 视频总时长
|
496 | * @supported alipay
|
497 | */
|
498 | videoDuration: number
|
499 | }
|
500 | interface onFullscreenChangeEventDetail {
|
501 | /** 方向 */
|
502 | direction: 'vertical' | 'horizontal'
|
503 | /** 全屏 */
|
504 | fullScreen: number | boolean
|
505 | }
|
506 | interface onWaitingEventDetail {
|
507 | /** 方向 */
|
508 | direction: 'vertical' | 'horizontal'
|
509 | /** 全屏 */
|
510 | fullScreen: number | boolean
|
511 | }
|
512 | interface onProgressEventDetail {
|
513 | /** 百分比 */
|
514 | buffered: number
|
515 | }
|
516 | interface onLoadedMetaDataEventDetail {
|
517 | /** 视频宽度 */
|
518 | width: number
|
519 | /** 视频高度 */
|
520 | height: number
|
521 | /** 持续时间 */
|
522 | duration: number
|
523 | }
|
524 | interface onControlsToggleEventDetail {
|
525 | /** 是否显示 */
|
526 | show: boolean
|
527 | }
|
528 | interface onTapEventDetail {
|
529 | ptInView: {
|
530 | x: number
|
531 | y: number
|
532 | }
|
533 | }
|
534 | interface onUserActionEventDetail {
|
535 | /** 用户操作的元素 */
|
536 | tag: keyof UserActionTag | string
|
537 | value: number
|
538 | }
|
539 | interface UserActionTag {
|
540 | /** 底部播放按钮 */
|
541 | play
|
542 | /** 中心播放按钮 */
|
543 | centerplay
|
544 | /** 静音按钮 */
|
545 | mute
|
546 | /** 全屏按钮 */
|
547 | fullscreen
|
548 | /** 重试按钮 */
|
549 | retry
|
550 | /** 网络提醒的播放按钮 */
|
551 | mobilenetplay
|
552 | }
|
553 | interface onAdTypeCommonEventDetail {
|
554 | /** 广告类型 */
|
555 | adType: 'preRollAd' | 'postRollAd'
|
556 | }
|
557 | }
|
558 | /** 视频。相关api:Taro.createVideoContext
|
559 | * @classification media
|
560 | * @supported weapp, alipay, swan, tt, qq, jd, h5, rn, harmony, harmony_hybrid
|
561 | * @example_react
|
562 | * ```tsx
|
563 | * export default class PageView extends Component {
|
564 | * constructor() {
|
565 | * super(...arguments)
|
566 | * }
|
567 | *
|
568 | * render() {
|
569 | * return (
|
570 | * <View className='components-page'>
|
571 | * <Video
|
572 | * id='video'
|
573 | * src='https://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400'
|
574 | * poster='https://misc.aotu.io/booxood/mobile-video/cover_900x500.jpg'
|
575 | * initialTime={0}
|
576 | * controls={true}
|
577 | * autoplay={false}
|
578 | * loop={false}
|
579 | * muted={false}
|
580 | * />
|
581 | * </View>
|
582 | * )
|
583 | * }
|
584 | * }
|
585 | * ```
|
586 | * @example_vue
|
587 | * ```html
|
588 | * <template>
|
589 | * <video
|
590 | * id="video"
|
591 | * src="https://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400"
|
592 | * poster="https://misc.aotu.io/booxood/mobile-video/cover_900x500.jpg"
|
593 | * initial-time="0"
|
594 | * :controls="true"
|
595 | * :autoplay="false"
|
596 | * :loop="false"
|
597 | * :muted="false"
|
598 | * />
|
599 | * </template>
|
600 | * ```
|
601 | * @see https://developers.weixin.qq.com/miniprogram/dev/component/video.html
|
602 | */
|
603 | declare const Video: ComponentType<VideoProps>
|
604 | export { Video, VideoProps }
|