uni-app 微信小程序 video标签动态设置direction不生效
uni-app 微信小程序 video标签动态设置direction不生效
示例代码:
<video :direction="videoDirection"></video>
data:{
videoDirection:90;
}
this.videoDirection = -90;
操作步骤:
<video>标签的direction只能初始化的时候确定,通过绑定变量动态修改无效。
预期结果:
<video>标签的direction可以通过绑定变量的方式修改
实际结果:
videoDirection的值已改变,但是视频方向并没有改变
bug描述:
<video>标签的direction只能初始化的时候确定,通过绑定变量无法动态修改
| 信息类别 | 信息内容 |
|------------------|------------|
| 产品分类 | uniapp/小程序/微信 |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | win10 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.08 |
| 第三方开发者工具版本号 | 1.06.2402040 |
| 基础库版本号 | 3.4.2 |
| 项目创建方式 | HBuilderX |
更多关于uni-app 微信小程序 video标签动态设置direction不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
注意看微信官方文档
更多关于uni-app 微信小程序 video标签动态设置direction不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
哦哦,就是只在触发全屏时有效,全屏后修改无效~
在 Uni-App 中,微信小程序的 video 组件确实支持通过 direction 属性来控制视频的方向(横屏或竖屏)。然而,如果你尝试动态设置 direction 属性时发现不生效,可能是因为以下几点原因:
1. direction 属性的动态更新限制
direction 属性在某些情况下可能不支持动态更新。也就是说,一旦 video 组件被创建,direction 属性的值可能无法通过数据绑定动态改变。
2. 使用 createVideoContext 方法
如果你需要动态改变视频的方向,可以尝试使用微信小程序提供的 createVideoContext 方法来控制视频的方向。
// 在页面的 onLoad 或 onReady 生命周期中创建 video 上下文
onReady() {
this.videoContext = uni.createVideoContext('myVideo', this);
}
// 在需要改变方向时调用
changeDirection(direction) {
this.videoContext.requestFullScreen({ direction: direction });
}
3. 强制刷新组件
如果你仍然希望通过修改 direction 属性来改变视频方向,可以尝试强制刷新 video 组件。例如,通过修改 video 组件的 key 属性来强制重新渲染组件。
<video :key="videoKey" id="myVideo" :direction="direction" src="your-video-url"></video>
data() {
return {
videoKey: 0,
direction: 0
};
},
methods: {
changeDirection(newDirection) {
this.direction = newDirection;
this.videoKey += 1; // 强制重新渲染 video 组件
}
}
4. 检查微信小程序基础库版本
确保你使用的微信小程序基础库版本支持 direction 属性的动态更新。如果基础库版本过低,可能会导致某些功能无法正常使用。
5. 使用 fullscreen 属性
如果你想控制视频的全屏模式,可以使用 fullscreen 属性,并结合 direction 属性来控制视频的方向。
<video id="myVideo" :fullscreen="isFullscreen" :direction="direction" src="your-video-url"></video>
data() {
return {
isFullscreen: false,
direction: 0
};
},
methods: {
toggleFullscreen(newDirection) {
this.isFullscreen = !this.isFullscreen;
this.direction = newDirection;
}
}

