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!");
}
}

readyState は iPad でサポートされていますか?


編集:さらにコードを追加しました。

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 のドキュメントは、少なくともreadyStateiOS 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 に答える