ios 原生video播控退出全屏之后 维持状态

在iOS设备上,使用原生video标签播放视频,当从全屏模式退出后,视频会自动保持在暂停状态。开发者可以参考Apple的官方文档《Using HTML5 Audio & Video》中关于使用JavaScript控制媒体的部分,来解决这一问题。

ios  原生video播控退出全屏之后 会一直维持pause状态

https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/ControllingMediaWithJavaScript/ControllingMediaWithJavaScript.html

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css"></style>
    <title>test</title>
</head>
<body>
  <div>
       <video  id="myvideo" src="" width="400" height="700" controls  controlslist="nodownload"  webkit-playsinline playsinline  preload="none"></video>
  </div>

</body>
在网页或应用中实现视频放时自动全屏的功能,可以通过 HTML5 和 JavaScript 结合使用,同时需要注意不同浏览器和设备(尤其是移动端)对自动放和全屏模式的限制。以下是实现 HTML5 视频自动全屏放的技术方案: ### 视频自动放并进入全屏模式 在 HTML 页面中使用 `<video>` 标签,并结合 JavaScript 放与全屏切换: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Video Auto Fullscreen</title> <style> video { width: 100%; height: auto; object-fit: cover; } </style> </head> <body> <video id="myVideo" autoplay muted controls></video> <script> const video = document.getElementById('myVideo'); const clipPaths = [ 'video1.mp4', 'video2.mp4', 'video3.mp4' ]; let currentClipIndex = Math.floor(Math.random() * clipPaths.length); video.src = clipPaths[currentClipIndex]; video.addEventListener('play', () => { if (video.requestFullscreen) { video.requestFullscreen(); } else if (video.webkitRequestFullscreen) { video.webkitRequestFullscreen(); // Safari } else if (video.msRequestFullscreen) { video.msRequestFullscreen(); // IE/Edge } }); video.addEventListener('ended', () => { // 放结束后切换到下一个随机视频 let newIndex; do { newIndex = Math.floor(Math.random() * clipPaths.length); } while (newIndex === currentClipIndex); currentClipIndex = newIndex; video.src = clipPaths[currentClipIndex]; video.play(); }); </script> </body> </html> ``` ### 注意事项 - **自动放限制**:大多数现代浏览器要求视频在自动放时必须静音(`muted` 属性),否则会阻止自动放。 - **全屏 API 权限**:全屏模式通常需要用户交互后才能触发,部分浏览器在自动放视频时允许全屏,但移动端(如 iOS)限制较多。 - **iOS 特殊处理**:iOS 上的 Safari 对自动全屏支持有限,可以通过设置 `webkit-playsinline` 和 `playsInline` 属性来制是否内联放,部分设备需用户手动点击触发全屏[^2]。 ### 移动端适配建议 - 对于 iOS 设备,推荐在用户点击放按钮后触发全屏操作,避免自动放带来的限制。 - 使用 `video.webkitEnterFullscreen()` 方法可以尝试强制进入全屏模式。 - 在 iOS 上,建议结合原生应用逻辑进行更精细的制,例如监听屏幕方向变化或使用原生通知机制[^2]。 ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值