萌萌新的成长 2023-05-15 18:59 采纳率: 33.3%
浏览 42

uniapp的轮播图里面插入video并自动播放,切换时有可能不播放是什么问题?

<view v-else-if="item.materialUrl&&isVideo(item.materialUrl)&&currentIndex == index">
<video 
class="myVideo" 
:autoplay="true"
:src="item.urlPrefix + item.materialUrl" 
loop="loop" 
:controls="false">
</video>
</view>

1、页面是从首页点击菜单进来的,有了交互所以可以自动播放。
2、在左右滑动切换的时候video有可能不播放,@play事件也不执行,再切换几次又可能会播放了,总之一直来回切换肯定会出现可播放和不可播放
3、swipeItem共用一个video,我尝试过每一个swipeItem都有自己的video,即删除&&currentIndex == index,问题依然存在。
4、我也尝试过获取video标签判断paused自己手动play(),play()执行了,依然没有播放,也没报错,@play事件也没执行。
5、我怀疑是缓冲问题,我尝试在播放之后判断paused状态递归执行当前函数,结果不行,好像还报有关element的错。

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-05-15 19:20
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    在 Uniapp 中,视频自动播放的行为受到浏览器的限制,因此在移动端的微信浏览器等环境下,自动播放可能会受到限制。除此之外,视频自动播放还受到网速、设备性能等因素的影响,因此出现不播放的情况也是正常的。

    针对你描述的情况,我建议你可以尝试以下几点:

    1. 在使用 autoplay 属性自动播放视频时,需要注意该属性在不同浏览器中的兼容性问题。例如,在某些浏览器中,自动播放只能在静音状态下进行。你可以尝试将视频设置为静音状态,或者使用 JavaScript 控制播放。

    2. 在视频播放过程中,需要等待视频加载完成后再进行播放。你可以监听 loadedmetadata 事件,在该事件触发后再调用 play() 方法,确保视频已经加载完毕再进行播放。

    3. 在轮播图中切换时,可以尝试在 swiperchange 事件中,监听视频的播放状态,如果当前视频不是正在播放的视频,则暂停当前视频并播放下一个视频。

    4. 如果以上方法都无法解决问题,你可以尝试使用 uni.createVideoContext 方法获取视频的上下文,通过该上下文对象控制视频的播放。

    总的来说,视频自动播放的行为比较复杂,受到多种因素的影响,因此需要结合具体情况进行调试和优化。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 修改了问题 5月15日
  • 创建了问题 5月15日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真