【问题标题】: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>

【问题讨论】:

    标签: javascript html video html5-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() 之前,您要等多久?还是有调用它的事件处理程序?
    • 我在上面提供了更多代码。看看编辑。这让我陷入了困境。为什么浏览器必须如此不一致。
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 2011-11-12
    • 2017-06-07
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多