Как проверить, используя javascript, если URL содержит видео (но не аудио) или аудио (но не видео) в браузере (на стороне клиента)? - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь использовать эти две простые функции, чтобы проверить, содержит ли 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");
        });

Проблема в том, что оба они возвращают true как для действительных аудио, так и для видео URL. Каково решение?

1 Ответ

0 голосов
/ 23 марта 2020

Итак, после глубокого исследования я обнаружил, что (в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...