ios - HTML5 视频 iOS 播放按钮消失

标签 ios html5-video mobile-safari http-live-streaming mpeg-dash

我在 jsfiddle 中创建了一个简单的 HTML5 dash 播放器实例..

https://jsfiddle.net/uumh8e6u/

  <video class="dashjs-player" poster="https://dummyimage.com/600x400/000/fff" autoplay playsinline>
                <source src="https://yt-dash-mse-test.commondatastorage.googleapis.com/media/car-20120827-manifest.mpd" type="application/dash+xml"/>
                <source src="https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8" type="application/x-mpegURL">
            </video>

当我尝试在 iPad 上播放它时,海报图像加载正确,然后播放按钮在屏幕上闪烁一秒钟,然后消失。

有人知道为什么会发生这种情况吗?

最佳答案

更新:

您提供的 JSFiddle 似乎无法在 MAC 上的 Safari 上播放,这听起来与您正在观察的问题类似。

但是,如果您右键单击海报并选择显示控件,则会显示视频并且看起来好像一直在播放。

同样,如果您向视频标签添加“controls”属性,它将正确自动播放视频。

请注意,这可能是 JSFiddle 限制,而不是 Safari 或 iOS 限制,但无论哪种方式,它都是可重现的效果(Safari 版本 11.0.1 (12604.3.5.1.1))。

  <video class="dashjs-player" poster="https://dummyimage.com/600x400/000/fff" autoplay playsinline controls>
                <source src="https://yt-dash-mse-test.commondatastorage.googleapis.com/media/car-20120827-manifest.mpd" type="application/dash+xml"/>
                <source src="https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8" type="application/x-mpegURL">
            </video>

还值得注意的是,webkit.org 建议不要假设任何媒体都会自动播放,因为浏览器通常允许用户在这方面设置首选项。他们的建议是检查并在必要时添加按钮或某些控件以允许用户播放视频:

var promise = document.querySelector('video').play();

if (promise !== undefined) {
    promise.catch(error => {
        // Auto-play was prevented
        // Show a UI element to let the user manually start playback
    }).then(() => {
        // Auto-play started
    });
}

原始答案

如果您查看浏览器控制台和调试器,请检查它是否使用 DASH 流或 HLS 流。 iOS 设备更喜欢 HLS,但我不确定它们是否会覆盖您列出的顺序。

如果它使用 HLS 流,那么这可能会解释您的问题 - 引用 dash.js 播放器不会播放您在 Mac 上的 Safari 上链接的 m3u8 文件,但它会播放您链接到的 mpd 文件:

HLS 文件本身看起来不错,它可以在 BitMovin 测试播放器中播放,例如在同一系统(MAC 上的 Safari)上没有问题:

关于ios - HTML5 视频 iOS 播放按钮消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47330065/

相关文章:

css - 旋转设备后 div 宽度不一致

html - 在 HTML5 视频播放器中获取缓冲进度值

javascript - 添加到主屏幕后 iPhone WebApp 无法正常工作

ios - 获取 View 被关闭时的时刻

ios - 如何在 iOS 7 的 UITableViewCell 左侧获取复选标记,就像在“设置”中一样?

css - 如何在Chrome中为字幕中的每个文本设置填充?

java - WebRTC java 服务器问题

iphone - 通过网络分发 mobileconfig 文件

ios - 使用快速枚举删除 NSManagedObject 是否安全?

ios - UIDocumentInteractionController 不会在 iOS 11 中打开其他应用程序