更新记录
1.0.0(2024-12-02)
下载此版本
第一个版本
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.8.3 app-vue |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
鸿蒙元服务 |
× |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
WttoAppVideo
App平台HTML5的video标签, 支持HTML5的video元素的全属性以及全方法.
由于uniapp原生video标签的层级问题,导致无法跟随滚动,遮盖住页面的弹窗等问题,所以在App平台使用renderjs渲染HTML的video标签。
具体详情可查看 MDN文档
属性
名称 |
类型 |
必填/默认值 |
备注 |
src |
String |
必填 |
要嵌到页面的视频的 URL |
autoplay |
Boolean |
false |
声明该属性后,视频会尽快自动开始播放,不会停下来等待数据全部加载完成。 |
controls |
Boolean |
false |
如果存在该属性,浏览器会在视频底部提供一个控制面板,允许用户控制视频的播放,包括音量、拖动进度、暂停或恢复播放。 |
controlslist |
Array |
[] |
当浏览器显示视频底部的播放控制面板(例如,指定了 controls 属性)时,controlslist 属性会帮助浏览器选择在控制面板上显示哪些 video 元素控件。可选值有: nodownload ,nofullscreen ,noremoteplayback |
crossorigin |
String |
'' |
指明是否使用 CORS 来获取相关视频。可选值有: anonymous ,use-credentials |
disablepictureinpicture |
Boolean |
false |
防止浏览器显示画中画上下文菜单或在某些情况下自动请求画中画模式。 |
disableremoteplayback |
Boolean |
false |
用于在使用有线(HDMI、DVI 等)和无线技术(Miracast、Chromecast、DLNA、AirPlay 等)连接设备时,禁用远程播放功能。 |
width |
String |
'100%' |
视频显示区域的宽度 |
height |
String |
'100%' |
视频显示区域的高度 |
loop |
Boolean |
false |
指定后会在视频播放结束的时候,自动返回视频开始的地方,继续播放。 |
muted |
Boolean |
false |
指明在视频中音频的默认设置。设置后,音频会初始化为静音。默认值是 false, 意味着视频播放的时候音频也会播放。 |
playsinline |
Boolean |
false |
指明视频将内嵌(inline)播放,即在元素的播放区域内。请注意,没有此属性并不意味着视频始终是全屏播放的。 |
poster |
String |
'' |
报帧图片 URL,用于在视频处于下载中的状态时显示。如果未指定该属性,则在视频第一帧可用之前不会显示任何内容,然后将视频的第一帧会作为海报(poster)帧来显示。 |
preload |
String |
'metadata' |
预加载方案。 可选值有: none ,metadata ,auto |
事件
名称 |
说明 |
canplay |
浏览器可以播放媒体,但估计尚未缓冲足够的数据,无法流畅播放至视频结束,期间可能出现停顿以便缓冲更多内容。 |
canplaythrough |
浏览器估计它可以不间断地播放到媒体末尾,无需暂停以进行内容缓冲。 |
complete |
已终止 OfflineAudioContext 的渲染。 |
durationchange |
duration 属性已更新。 |
emptied |
媒体内容已清空;例如,如果媒体已加载(或部分加载)完成,并调用 load() 方法重新加载。 |
ended |
视频停止播放,因为媒体已经到达结束点。 |
error |
获取媒体数据时出现错误,或者资源的格式不受支持。 |
loadeddata |
媒体的首帧已加载完成。 |
loadedmetadata |
元数据已加载完毕。 |
loadstart |
浏览器开始加载资源时触发。 |
pause |
播放已暂停。 |
play |
播放已开始。 |
playing |
已经在暂停或因数据不足而延迟后准备好进行播放。 |
progress |
在浏览器加载资源期间周期性触发。 |
ratechange |
播放速率发生变化。 |
seeked |
拖动进度(seek)操作完成。 |
seeking |
拖动进度操作开始。 |
stalled |
用户代理尝试获取媒体数据,但意外地无法获取数据。 |
suspend |
媒体数据加载已暂停。 |
timeupdate |
由 currentTime 属性指示的播放时间已更新。 |
volumechange |
音量发生变化。 |
waiting |
由于暂时缺少数据而停止播放。 |
方法
示例
<template>
<!-- #ifdef APP-PLUS -->
<wtto-app-video ref="appVideoRef" src="https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/uni-app-video-courses.mp4" @play="isPlaying = true" @pause="isPlaying = false"></wtto-app-video>
<!-- #endif -->
</template>
<script setup>
import {ref} from 'vue'
const isPlaying = ref(false)
const appVideoRef = ref(null)
onHide(() => {
if (isPlaying.value) {
appVideoRef.value?.pause()
}
})
</script>