9***@qq.com
9***@qq.com
  • 发布:2026-07-24 19:22
  • 更新:2026-07-24 19:24
  • 阅读:74

使用uniapp打包的APP,视屏播放全屏横屏下需要支持快进、倒退,vue使用的vue3,原生的组件不支持这些功能

分类:uni-app

使用uniapp打包的APP,视屏播放全屏横屏下需要支持快进、倒退,vue使用的vue3,原生的组件不支持这些功能

2026-07-24 19:22 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

在 uni-app 打包的 App 端(安卓、iOS),<video> 组件属于原生组件。当调用原生全屏时,视频会脱离 webview 渲染层进入系统级别的全屏状态。在这种状态下,前端页面中的 cover-viewcover-image 或其他普通组件无法覆盖在原生视频之上,因此无法通过监听前端触摸事件来实现自定义的快进、倒退手势。

针对你使用 Vue3 开发且需要支持全屏横屏下快进、倒退的需求,可以参考以下两种解决方案:

方案一:使用 CSS 伪全屏与自定义控制层

不使用 <video> 组件的 requestFullScreen 方法,而是通过 CSS 样式模拟全屏效果,使视频仍然保持在 webview 渲染层内。

  1. 锁定屏幕方向:在进入全屏时,调用 plus.screen.lockOrientation('landscape-primary') 锁定横屏;退出时调用 plus.screen.unlockOrientation() 解除锁定。
  2. CSS 旋转撑满屏幕:通过 CSS transform: rotate(90deg) 将视频容器旋转,并设置宽高为屏幕的宽高,使其视觉上呈现横屏全屏效果。
  3. 覆盖自定义控制层:在视频上方覆盖 cover-view(vue 页面)或普通 view(nvue 页面),通过监听 @touchstart@touchmove@touchend 等触摸事件,计算手指滑动距离,从而调用 VideoContext.seek 方法实现快进和倒退,也可以实现长按倍速播放等功能。

方案二:使用插件市场现成插件

如果自行实现成本较高,建议前往 DCloud 插件市场寻找已经实现该功能的视频播放器插件。

例如 f-video 插件,它支持 Vue3、安卓和 iOS 平台,并且明确说明“全屏采用 css 加横屏方式显示”。这意味着该插件没有使用原生全屏,而是通过 CSS 方式实现全屏,从而可以方便地在视频上方覆盖自定义的控制层来实现快进、倒退等手势交互。

你也可以直接在 插件市场 搜索“视频播放器”,查找更多符合项目需求且支持自定义手势的播放器组件。

内容为 AI 生成,仅供参考

要回复问题请先登录注册