uni-app ios video 组件添加 initial-time="20" 不显示内容一直loading

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app ios video 组件添加 initial-time=“20” 不显示内容一直loading

操作步骤:

  • 按图中代码就能复现

预期结果:

  • loading消失显示最新画面

实际结果:

  • loading

bug描述:

  • 使用hello uniapp模版 vue2 video组件页面
  • rtsp测试地址: rtsp://rtsp-test-server.viomic.com:554/stream
信息类别 信息内容
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 m2
HBuilderX类型 正式
HBuilderX版本号 4.14
手机系统 iOS
手机系统版本号 iOS 17
手机厂商 模拟器
手机机型 13
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

Image


2 回复

我这边是设置了initial-time后,在苹果手机上播放视频,进度条直接不动了,而且是从0开始播放的


针对你提到的 uni-appvideo 组件在 iOS 平台上设置 initial-time="20" 后不显示内容且一直显示 loading 的问题,这可能是由于视频组件的某些特性或 iOS 平台的特殊处理导致的。以下是一些可能的解决方案和代码示例,你可以尝试并根据实际情况进行调整。

解决方案一:使用 JavaScript 控制播放时间

由于直接在 video 标签中设置 initial-time 属性可能存在问题,你可以尝试在页面加载完成后,通过 JavaScript 来设置视频的当前时间。

<template>
  <view>
    <video
      id="myVideo"
      src="https://example.com/path/to/your/video.mp4"
      controls
      autoplay
      @loadedmetadata="onVideoLoaded"
    ></video>
  </view>
</template>

<script>
export default {
  methods: {
    onVideoLoaded(event) {
      const video = this.$refs.myVideo || document.getElementById('myVideo');
      if (video) {
        video.currentTime = 20; // 设置初始播放时间为20秒
      }
    }
  },
  mounted() {
    // 如果需要在mounted中直接操作DOM,可以使用$nextTick确保DOM已渲染
    this.$nextTick(() => {
      const video = this.$refs.myVideo || document.getElementById('myVideo');
      if (video) {
        video.addEventListener('loadedmetadata', this.onVideoLoaded);
      }
    });
  },
  beforeDestroy() {
    const video = this.$refs.myVideo || document.getElementById('myVideo');
    if (video) {
      video.removeEventListener('loadedmetadata', this.onVideoLoaded);
    }
  }
};
</script>

注意:在 uni-app 中,你可能需要使用 this.$refs 或其他方式来获取视频元素,具体取决于你的项目结构和框架版本。

解决方案二:检查视频源和格式

确保你的视频源是有效的,并且格式是 iOS 设备支持的。有时候,视频编码或格式问题也可能导致加载失败。

解决方案三:更新 uni-app 和相关依赖

确保你的 uni-app 和所有相关依赖都是最新版本,因为新版本可能修复了旧版本中的一些已知问题。

结论

如果上述方法都不能解决问题,建议查看 uni-app 的官方文档或社区论坛,看看是否有其他开发者遇到并解决了类似的问题。同时,也可以考虑向 uni-app 的开发者团队报告这个 bug。

回到顶部