video全屏播放

video全屏播放:

const elVideo = document.getElementById('video')
setTimeout(() => {
    if (elVideo.requestFullscreen) {
       elVideo.requestFullscreen()
    } else if (elVideo.mozRequestFullScreen) {
       elVideo.mozRequestFullScreen()
    } else if (elVideo.webkitRequestFullScreen) {
       elVideo.webkitRequestFullScreen()
    } else if (elVideo.webkitEnterFullScreen) {
       // Toggle fullscreen in Safari for iPad
        elVideo.webkitEnterFullScreen()
    }
    elVideo.play()
}, 500)

几个问题要注意:

1.注意针对IOS Safari需要使用webkitEnterFullScreen

2.调用play方法时,应该采用setTimeout进行包裹,主要原因如下:

在某些情况下,点击事件和video播放之间需要使用setTimeout间隔才能正常打开播放,可能是由于浏览器的异步处理机制导致的。

当你触发点击事件时,浏览器会立即执行相应的事件处理程序。如果在事件处理程序中有一个video元素的播放操作,浏览器可能会在播放操作之前执行其他的操作,例如更新页面布局或执行其他的JavaScript代码。这可能会导致video元素无法正常播放。

通过使用setTimeout间隔,你可以将video的播放操作延迟到下一个事件循环中执行。这样可以确保在播放视频之前,浏览器已经完成了其他的操作,从而避免了可能的冲突。

需要注意的是,这种情况可能因浏览器和设备而异。不同的浏览器和设备可能有不同的异步处理机制,因此在某些情况下,可能不需要使用setTimeout间隔。

退出全屏:

const videoElement = document.getElementById('myVideo')

function exitFullscreen() {
  if (document.exitFullscreen) {
    document.exitFullscreen()
  } else if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen()
  } else if (document.webkitExitFullscreen) {
    document.webkitExitFullscreen()
  } else if (document.msExitFullscreen) {
    document.msExitFullscreen()
  }
}

全屏播放监听:

  video.addEventListener('fullscreenchange', (event) => {
    if (document.fullscreenElement) {
    // 视频进入全屏模式
      console.log('视频进入全屏模式')
    } else {
    // 视频退出全屏模式
      console.log('视频退出全屏模式')
      video.pause()
    }
  })
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓风伴月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值