vue3中使用video标签进行视频播放

文章介绍了如何使用HTML5的video标签来嵌入视频,包括设置视频源(src),宽高(width,height),自动播放(autoplay)和控制条.controls。同时,通过@timeupdate事件监听视频播放时间。此外,还展示了如何通过接口获取视频地址并实现下载功能,以及使用CSS隐藏进度条。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 引入video标签,并添加相关参数
<video
    ref="videoRef"
    :src="videoUrl"
    width="650"
    height="400"
    autoplay
    controls
    @timeupdate="handleTimeUpdate"
></video>
 <!--
    src: 视频路径
    width: 视频宽度
    height: 视频高度
    autoplay: 是否自动播放
    controls: 是否显示控制条
    @timeupdate: 视频播放时触发(获取视频播放的时间)
  -->
2. 通过接口获取到视频播放地址,并支持下载
//播放
const handlePlayVideo = (data) => {
  videoUrl.value = data?.baseUrl;
};

//下载
const handleDownload = (data) => {
  window.open(data?.baseUrl, "_blank");
};
3. 设置css,可以对video标签的进度条进行隐藏
video::-webkit-media-controls-timeline {
  display: none;
}

### Vue 项目中 Video 标签视频无法播放的原因分析 在 Vue H5 项目中使用 `<video>` 标签时,如果遇到视频无法播放的情况,可能是由于路径配置错误或浏览器兼容性问题引起的。对于给定的代码片段: ```html <video src="@/video/qiang.mp4" controls="controls"></video> ``` 这种写法可能导致资源加载失败,因为 `@` 符号通常用于 Webpack 别名解析,在实际构建过程中并不会直接转换成正确的相对路径。 ### 解决方案一:修正静态资源路径 为了确保视频能够正常加载,建议将视频文件放置于项目的公共目录下(如 `/public/video/qiang.mp4`),并更新模板中的路径为绝对路径形式[^1]。 ```html <video :src="&#39;/video/qiang.mp4&#39;" controls></video> ``` 注意移除了双引号内的多余引号,并使用了单向数据绑定语法 (`:`) 来动态设置 `src` 属性值。 ### 解决方案二:处理跨域资源共享 (CORS) 当服务器端未正确配置 CORS 头信息时,可能会阻止前端访问媒体资源。确认服务器返回响应头包含如下字段: - Access-Control-Allow-Origin: * - Access-Control-Allow-Methods: GET, POST, OPTIONS - Access-Control-Allow-Headers: Content-Type ### 解决方案三:考虑不同设备间的差异 某些情况下,特别是移动平台上可能存在特定的行为限制。例如 Android 微信内置浏览器会存在一些特殊行为,比如自动暂停背景音轨等特性影响到多媒体组件的表现[^3]。 针对这种情况可以尝试引入第三方库来增强对各种环境的支持度,像 flv.js 就是一个不错的选择,它专门优化了 HTML5 下 FLV 流媒体格式的支持[^2];而 jsmpeg 更适合用来实现基于 WebSocket 的实时流传输场景下的低延迟互动体验[^4]。 ### 解决方案四:监听属性变化触发 DOM 更新 有时即使改变了 data 中定义的数据项也无法立即反映到视图层面上去。此时可以通过手动操作DOM节点的方式来强制刷新元素状态。具体做法是在 mounted 生命周期钩子函数内获取目标对象实例并通过 JavaScript 修改其 source 地址[^5]。 ```javascript mounted() { this.$nextTick(() => { const player = document.querySelector(&#39;video&#39;); if(player){ player.src=&#39;/new/path/to/file&#39;; } }); } ``` 以上方法可以帮助排查并修复大部分因技术选型不当而导致的问题。当然还需要结合实际情况进一步调试验证效果最佳实践方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值