如何将uni-app中video标签播放按钮隐藏

本文详细介绍了在uni-app中使用video标签时遇到的关于controls属性的坑,特别是如何正确隐藏播放按钮的问题。作者分享了从尝试直接设置controls=false到最终在真机上验证生效的过程,揭示了测试工具与实际设备表现的差异。

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

uni-app中video标签播放按钮隐藏的坑。。。

项目需求是将视频放在展示列表上,刚开始的思路是直接将视频的首帧截取出来放在列表上,后来发现此方法实在太过麻烦。于是直接使用了video标签,将视频展示了出来,但是标签自带的播放按钮实在太不美观,于是就想将它隐藏起来,自己写一个播放按钮样式,反正列表上的视频不需要播放,于是乎,翻开了官方文档,走上了踩坑的道路。。。。

官方文档:

文档描述
但是无论怎样设置 controls=“false” 都不会生效,后来经过多方请教,原来 false 被解析成了字符串,字符串默认为true,需要写成 controls=“{{false}}” 才可以,官方牛逼。
但是我设置之后依旧没有生效,于是再次曲线救国,在data中定义了一个变量,将变量赋值为false,再将 controls变成自定义属性,可是依旧没有生效,,,(心态炸裂!!!)
于是先将这个问题放了一下,先做别的东西了,后来在真机上测试别的东西时,无意间看到了 controls 竟然生效了,,,
原来,测试工具不认识 controls ,修改了之后在测试工具上看不出来!!!!!!
ok,一波三折,问题解决,官方牛逼,测试工具牛逼。

uni-app中,当视频处于全屏模式下想要实现截图功能,你可以通过JavaScript的`uni.getImageInfo`方法配合`setTimeout`来间接达到目的。由于uni-app限制了直接获取屏幕截图的能力,尤其在全屏模式下,通常需要一些技巧来处理。 以下是一个简化的步骤示例: 1. 首先,当用户触发全屏切换(比如点击全屏按钮),监听视图的`fullscreenchange`事件。 ```javascript Page({ onFullscreenChange(e) { if (e.detail.fullscreen) { // 当进入全屏 this.takeScreenshot(); } }, }) ``` 2. 定义一个函数 `takeScreenshot` 来处理截取操作。这个函数会在一段时间后尝试截取当前页面的canvas内容,因为全屏下的原生视频无法直接截图。 ```javascript methods: { takeScreenshot() { setTimeout(() => { const canvas = document.createElement('canvas'); canvas.width = window.innerWidth; canvas.height = window.innerHeight; // 模拟渲染到canvas const ctx = canvas.getContext('2d'); ctx.drawImage(document.documentElement, 0, 0, canvas.width, canvas.height); // 保存截图 uni.saveImageToPhotosAlbum({ dataUrl: canvas.toDataURL(), success: ... }); }, 500); // 这里的时间可以根据实际情况调整 } } ``` 3. 使用`uni.saveImageToPhotosAlbum`方法将canvas转换的数据URL保存到相册,注意替换`success`回调里的相应逻辑,比如上传到服务器或者显示给用户看。 注意:这种方法并非完美,尤其是对于动态视频而言,可能会捕捉到非关键帧的画面。此外,由于平台限制,实际效果可能会有所不同,尤其是在某些低版本或者特定设备上。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值