0

我在检查 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>
4

1 回答 1

0

Apple 文档似乎至少表明readyState自 iOS 3.0 以来就存在媒体元素: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 的错误跟踪器。

于 2012-07-19T22:14:16.417 回答