检查是不是使用 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?
可以从 Windows 机器在 iPad 上远程调试 javascript 吗?
如何检查 UIDocumentInteractionController 是不是由于 iPad 上缺少外部应用程序而无法打开文档?
CSS 或 Javascript 中是不是有任何方法可以判断用户是不是将 iPad 上的 HTML 页面作为 Web 应用程序查看?