私はしばらくこの問題を見つめてきました。次のコードは、ビデオを見て、実際に再生している音かどうかを判断します。サイレントならば、ループして基本的にGIFのように機能します。Javascriptの条件がオーディオチェックで機能しない
コンソールはサウンドチェックを正確に記録します。私はチェックしてきた。
しかし、(ビデオにループを適用する)コードの次のビットは何が実行されても実行されます。それはサウンドでビデオをループし、私は理由を伝えることができません。
<script type="text/javascript">
document.getElementById("my-video_html5_api").addEventListener("loadeddata", function() {
if (typeof this.webkitAudioDecodedByteCount !== "undefined") {
// non-zero if video has audio track
if (this.webkitAudioDecodedByteCount > 0)
console.log("video has audio");
else
console.log("video doesn't have audio");
var vid = document.getElementById("my-video_html5_api");
vid.loop = true;
}
else if (typeof this.mozHasAudio !== "undefined") {
// true if video has audio track
if (this.mozHasAudio)
console.log("video has audio");
else
console.log("video doesn't have audio");
var vid = document.getElementById("my-video_html5_api");
vid.loop = true;
}
else
console.log("can't tell if video has audio");
});
</script>
ヘルプがありますか?
'this.mozHasAudio'がfalseのときだけ' var.loop = true'を行うことを意味するならば、ブロックをカッコで囲む必要があります: '{}'は現在の形式で、console.log常に実行します。 –