检查是不是使用 JavaScript 在 iPad 中加载视频

Posted

技术标签:

【中文标题】检查是不是使用 JavaScript 在 iPad 中加载视频【英文标题】:Check to see if a video loads in iPad with JavaScript检查是否使用 JavaScript 在 iPad 中加载视频 【发布时间】:2012-07-19 04:15:16 【问题描述】:

我在检查 iPad 中是否正在加载视频时遇到了一点问题。我需要检查是否加载,因为我正在循环加载所有视频,增量为 video_1.mp4、video_2.mp4、video_3.mp4。但是,它似乎忽略了“readyState”并直接进入 else 语句。

代码如下:

function loadMedia() 
var media = document.getElementsByTagName("video")[0];

if (media.readyState === 4) 
    alert("Video has been loaded!");
 else 
    alert("Video hasn't been loaded!");


iPad 是否支持 readyState?

编辑:添加了更多代码。

loadMedia 函数通过匿名函数绑定到 window.onload。

window.onload = (function () 
    loadMedia();
);

这是 html

<video class="video" controls="controls" poster="images/posters/tb_1.jpg" preload="metadata">
    <source src="media/tb_1.mp4" type="video/mp4; codecs='avc1.42E01E, mp4a.40.2'" />
    We apologize, but your browser does not support this video. Please consider an upgrade.
</video>

【问题讨论】:

【参考方案1】:

Apple 文档似乎至少表明,自 ios 3.0 以来,媒体元素的 readyState 就已经存在: http://developer.apple.com/library/safari/#documentation/AudioVideo/Reference/HTMLMediaElementClassReference/HTMLMediaElement/HTMLMediaElement.html

这也许是一种间接的文档,但它确实是。

由于在设备上启动 JS 调试器可能很烦人,您可能需要更改此设置:

alert("Video hasn't been loaded!")

到这里:

alert("Video hasn't been loaded! " + media.readyState);

如果您在浏览器中打开控制台(如果您愿意,可以切换到 console.log() 而不是 alert()),这应该会告诉您您的问题是否是 readyState 未定义(因此可能不受支持)或者如果问题是 media 未定义(似乎不太可能)。

当然,您可能还发现了一个错误。如果他们允许这样的事情,您可能想搜索 Apple 的错误跟踪器。

【讨论】:

我试过了,它说“0”,我确定它的意思是“HAVE_NOTHING”。我知道 Apple 有一个 bug 报告器,但我不知道你是否可以浏览它们。 嗯,我试过了,值为“1”。在这个文档developer.mozilla.org/en/DOM/HTMLMediaElement 中,它说“1”的值是空闲的。我检查了值 3?我可能写了一些不正确的东西......但它适用于 Chrome 和 Firefox 的桌面。 编辑: networkState 在桌面上不起作用。该值也是“1”。 1 很好。 0 会是个问题。 loadMedia() 是如何被调用的?你能显示更多代码吗?在拨打loadMedia() 之前,您要等多久?还是有调用它的事件处理程序? 我在上面提供了更多代码。看看编辑。这让我陷入了困境。为什么浏览器必须如此不一致。

以上是关于检查是不是使用 JavaScript 在 iPad 中加载视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JavaScript 中区分 iPhone、iPad 和 iPod?

检查设备是不是为 iPad

使用 javascript 检测 iPad 设备方向

可以从 Windows 机器在 iPad 上远程调试 javascript 吗?

如何检查 UIDocumentInteractionController 是不是由于 iPad 上缺少外部应用程序而无法打开文档?

CSS 或 Javascript 中是不是有任何方法可以判断用户是不是将 iPad 上的 HTML 页面作为 Web 应用程序查看?