布朗
布朗
  • 发布:2026-06-06 17:12
  • 更新:2026-06-06 17:13
  • 阅读:45

【报Bug】ios播放视频不显示控制器,之前一直可以,更新HBuilderX5.07版本之后线上打包发现问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows 11

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iPhone 17 Pro、iPhone 15

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

必现

预期结果:

视频播放点击视频能正常显示视频控制器

实际结果:

视频播放后点击视频不显示视频控制器

bug描述:

老项目,vue页面使用video视频播放,之前一直可以,更新HBuilderX到5.07版本之后线上打ios宝测试发现该问题,视频能正常播放,按时点击视频时不显示视频控制器全屏按钮进度条等

2026-06-06 17:12 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

好的,我们来评审一下这个 Bug 反馈。

首先,从 DCloud 官方人员的视角来看,这个反馈的整体质量是及格的,但缺少了最关键的部分,导致无法直接定位问题。

问题反馈评审

1. 内容完整性分析

  • BUG 标题与描述:标题清晰地说明了问题核心:ios播放视频不显示控制器,并指出了复现条件是升级 HBuilderX 5.07 版本后。描述中也提到了是老项目、vue页面、之前正常。这部分是合格的,能让人快速理解问题。
  • 代码示例:这是这个反馈最大的问题所在,完全没有提供。一个视频组件的问题,没有提供 <video> 标签的写法、属性配置(如 controls)、CSS 样式(特别是宽高设置)以及页面结构,我们无法判断是用法问题还是框架问题。
  • 复现步骤:只写了“必现”,但没有具体的操作路径,比如:是进入页面自动播放后点击?还是手动触发播放后点击?视频组件是直接放在页面顶层,还是嵌套在 swiperscroll-view 等容器中?这些信息的缺失会直接影响我们能否成功复现。
  • 预期结果:“点击视频能正常显示视频控制器”,这个预期是合理且标准的。
  • 实际结果:“点击视频不显示视频控制器”,这个结果是异常的,属于需要排查的 Bug 范畴。
  • 分类信息:提供了 HBuilderX 版本(5.07)、运行平台(iOS)、系统版本(iOS 26)、设备机型(iPhone 17 Pro、iPhone 15)和 Vue 版本(Vue2)。这些信息很完整,为排查提供了明确的范围。

2. Bug 是否成立分析

根据知识库中的信息,这个 Bug 是成立的,并且是一个已知问题。

知识库中有一条非常关键的线索,来自 Ask 社区的一个反馈:[DCloud问答_220169]【报Bug】iOS26.4.1在App端vue页面video视频播放控制器不显示,不是固定高度问题](https://ask.dcloud.net.cn/question/220169)。

这个反馈与你的问题高度吻合:

  • 都是在 HBuilderX 5.07 版本下。
  • 都是 iOS 平台(特别是 iOS 26 系统)。
  • 都是 vue 页面
  • 现象都是视频播放控制器不显示

更重要的是,这条反馈的 Bug 描述里给出了一个非常具体的发现:“经过测试发现如果video初始化默认就在可视区域时的视频播放后控制器不显示,那些一开始不在可视区域内的video当页面滚动后出现在可视区域之后播放控制器就能显示出来”。

这个发现很可能就是你遇到问题的根本原因,它指向了 5.07 版本在 iOS 系统上对 video 组件初始渲染逻辑可能存在的一个 Bug。

此外,另一条稍早的反馈也提到了同样的问题:video视频播放组件的controls控件在ios26中无法打开,说明这个现象在 iOS 26 系统上可能比较突出。

3. 基础概念与解决方案分析

  • 平台与环境:反馈中明确是 uni-app 的 App 平台(iOS),使用的是 vue 页面,这是完全符合规范的。
  • 替代方案
    1. 临时规避:根据 Ask 社区的发现,你可以尝试一个临时方案:不要让 <video> 组件在页面初次加载时就处于可视区域内。例如,可以把它放在一个需要滚动才能看到的位置,或者先用 v-if 控制,在页面其他内容渲染一小段时间后再将其显示出来。这可以作为一种临时绕过 Bug 的手段。
    2. 自定义控件:由于原生控件存在兼容性问题,一个更彻底的解决方案是使用自定义播放控件。插件市场有封装好的插件,它们重写了控制条,可以绕过原生控件的显示问题。例如:
      • x-video 视频播放(适用于 Vue2,支持 H5 和微信小程序,App 端支持有限)
      • x-video-player (app h5 微信小程序)(这个插件明确支持了 app-nvue,如果你的页面可以改为 nvue,也是一个选择)
        注意:使用插件前,请务必仔细阅读其平台兼容性说明。

综合结论与建议

这是一个有效的 Bug 反馈,并且与已知问题高度关联。问题本身不是你的用法错误,而是 HBuilderX 5.07 版本在特定条件下(iOS系统、vue页面、组件初始在可视区域)引入的兼容性问题。

给你的建议

  1. 补充信息:为了帮助官方更准确地修复,建议你补充完整的代码示例,特别是 <video> 组件的使用方式和 CSS 样式。
  2. 尝试规避:可以立即尝试上面提到的临时方案,看看将视频组件延迟显示是否能解决问题。
  3. 关注修复:请关注后续 HBuilderX 的更新日志,这个问题应该会在新版本中得到修复。你可以关注这个相关链接以获取进展:DCloud问答_220169
内容为 AI 生成,仅供参考

要回复问题请先登录注册