如何使用 javascript 检查 URL 是否包含视频(但不包含音频)或浏览器(客户端)上的音频(但不包含视频)?

2 html javascript dom

我正在尝试使用这两个简单的函数来检查 URL 是否包含音频或视频:

        //For video
        var video = document.createElement("video");
        video.setAttribute("src", url);
        video.addEventListener("canplay", function() {
            console.log("video true");
        });
        video.addEventListener("error", function() {
            console.log("video false");
        });

        //For audio
        var audio = new Audio();
        audio.setAttribute("src", url);
        audio.addEventListener("canplay", function() {
            console.log("audio true");
        });
        audio.addEventListener("error", function() {
            console.log("audio false");
        });
Run Code Online (Sandbox Code Playgroud)

问题是对于有效的音频和视频 URL,它们都返回 true,解决方案是什么?

小智 5

经过深入研究,我发现(在 HTML 中)音频实际上是没有尺寸的视频,因此您可以简单地使用它:

var video = document.createElement("video");
video.setAttribute("src", url);
video.addEventListener("canplay", function() {
    console.log("video true");
    console.log(video.videoHeight);
});
video.addEventListener("error", function() {
    console.log("video false");
});
//audio => video true
//         0
//video => video true
//         1080
Run Code Online (Sandbox Code Playgroud)