Подтвердить что ты не робот

Обнаружение HTTP Live Streaming на мобильных телефонах

Я хочу определить, может ли мобильный телефон/планшет воспроизводить потоки HTTP Live (m3u8).

В настоящее время я тестирую этот script:

function isHLSEnabled() {
    var videoElement = document.createElement('video'),
        canPlayAppMpeg = videoElement.canPlayType('application/x-mpegURL'),
        canPlayAppleMpeg = videoElement.canPlayType('vnd.apple.mpegURL');

    return (
        (canPlayAppMpeg == 'probably' || canPlayAppMpeg == 'maybe')
        || (canPlayAppleMpeg == 'probably' || canPlayAppleMpeg == 'maybe')
    );
}

Но в некоторых браузерах Samsung (запасы, дельфин и т.д.) это плохо работает - он возвращает false (потому что canPlayTypes - это пустые строки), однако он способен воспроизводить видео.

Существуют ли пуленепробиваемые (иш) решения для обнаружения такого рода потоковой поддержки?

4b9b3361

Ответ 1

Я не уверен, есть ли пуленепробиваемое решение на данный момент.

Использование метода видеоэлемента canPlayType - единственное, что действительно работает. Существует около +/- 5/6 медиаформатов, которые имеют окс-поддержку от современных браузеров.

Итак, в основном вы создаете список форматов, которые вы хотите поддерживать и проверяете на них. Метод canPlayType позволяет также указать, какой кодек. Что вы должны делать, поскольку просто тестирование для WebM не может привести к желаемому результату, например:

element.canPlayType('video/webm; codecs="vp9"').

После этого вы обычно получаете три разных ответа: "возможно", "mabye" или "" (значение пустой строки: не поддерживается).

Некоторые ресурсы, которые могут вам пригодиться:

Mozilla предоставляет список основных форматов/кодеков потока:

Список медиафайлов Mozilla

Modernizr - это платформа, которая будет тестировать поддержку большинства видеоформатов html5. Вы также можете взглянуть на их исходный код для обнаружения видео html5.

Модернизировать HTML-видеообъявление