uni-app video标签在安卓下全屏后退出播放界面 再次进入播放界面 样式发生错乱

uni-app video标签在安卓下全屏后退出播放界面 再次进入播放界面 样式发生错乱

详细问题描述

uni-app video标签在安卓下全屏后退出播放界面 再次进入播放界面 样式发生错乱

点击视频按钮进入视频播放页面,全屏播放后,退出全屏,返回主页,然后再次点击按钮进入视频播放页面,样式发生错乱
h5和ios没有问题,仅发生在安卓,具体见附件上传视频,代码也在附件

[步骤]

[结果]

[期望]

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]

IDE运行环境说明

项目 信息
IDE HBuilderX
IDE版本号 2.6.5
windows版本号 win10
运行端是h5或app或某个小程序? app 安卓 ios和h5没有问题
运行端版本号 -
项目是cli创建的还是HBuilderX创建的? HBuilderX
编译模式说明:自定义组件模式?纯nvue模式?v3模式? v3

App运行环境说明

项目 信息
Android版本号 所有安卓均有
iOS版本号 -
手机型号 华为系列
模拟器型号 -

附件

VIDEO_20200331_134931933.rar

video.rar


更多关于uni-app video标签在安卓下全屏后退出播放界面 再次进入播放界面 样式发生错乱的实战教程也可以访问 https://www.itying.com/category-93-b0.html

19 回复

我这边的情况是,安卓webview,点击全屏视频会暂停然后页面卡死

更多关于uni-app video标签在安卓下全屏后退出播放界面 再次进入播放界面 样式发生错乱的实战教程也可以访问 https://www.itying.com/category-93-b0.html


唉 也没官方回应

也遇到了

请问解决了没,遇到了相同的问题

r/upx 不支持横竖屏切换,可以使用 px、rem、vw、% 等替代

rem也不管用,还是会乱

回复 flyblue: 说具体点

回复 DCloud_UNI_GSQ:安卓上进入视频播放全屏后退出,在进入视频页面,样式就混乱了,使用rem,%都会混入,用px不会乱

回复 flyblue: vw呢?

请问解决了吗?我也碰到了~

不要用upx了,用px或者rem吧

解决了吗?我也遇到了

就是官方回复的不要用upx了

解决了吗

华为部分机型全屏播放视频,退出全屏后样式乱了,直接闪退

您好我也需要了这个问题请问解决了吗

我试了一下,给 video标签添加一个 :autoplay=“true” 让他自动播放,我们搞一个延迟期,延迟300毫秒在进行src赋值,就行

2024年了解决了吗?

针对您提到的uni-app中video标签在安卓设备全屏播放后退出再进入播放界面样式错乱的问题,这通常是由于组件状态管理不当或样式在不同状态下未能正确重置引起的。以下是一些可能的解决方案和代码示例,您可以根据具体情况进行调整。

1. 确保视频组件的样式在状态变化时重置

video组件上添加@fullscreenchange事件监听器,用于检测全屏状态的变化,并在状态变化时重置组件的样式。

<template>
  <view>
    <video
      id="myVideo"
      src="your-video-url.mp4"
      controls
      @fullscreenchange="handleFullscreenChange"
      style="width: 100%; height: auto;"
    ></video>
  </view>
</template>

<script>
export default {
  methods: {
    handleFullscreenChange() {
      // 重置video组件的样式,这里可以根据需要调整
      const video = this.$refs.myVideo;
      video.style.width = '100%';
      video.style.height = 'auto';
      // 如果有其他样式需要重置,可以在这里添加
    }
  },
  mounted() {
    // 初始化时确保样式正确
    this.handleFullscreenChange();
  }
};
</script>

注意:由于uni-app的限制,直接通过this.$refs访问DOM元素可能不可行,您可能需要使用其他方式获取video元素,比如通过document.getElementByIdthis.$mp.page.selectComponent(在小程序环境中)。

2. 使用CSS类管理样式

定义CSS类来管理不同状态下的样式,通过JavaScript动态添加或移除这些类。

<style>
.normal-video {
  width: 100%;
  height: auto;
}
.fullscreen-video {
  /* 全屏时的样式 */
}
</style>

<template>
  <view>
    <video
      id="myVideo"
      src="your-video-url.mp4"
      controls
      @fullscreenchange="toggleVideoClass"
      :class="[isFullscreen ? 'fullscreen-video' : 'normal-video']"
    ></video>
  </view>
</template>

<script>
export default {
  data() {
    return {
      isFullscreen: false
    };
  },
  methods: {
    toggleVideoClass() {
      this.isFullscreen = !this.isFullscreen;
    }
  }
};
</script>

总结

上述方法提供了一种思路,即通过监听全屏状态变化来动态调整video组件的样式。由于uni-app的具体实现可能有所不同,您可能需要根据实际情况调整代码。如果问题依旧存在,建议检查其他可能影响样式的因素,如CSS优先级、组件嵌套等。

回到顶部