Как я могу определить, поддерживает ли браузер MJPEG?
современные браузеры, кроме IE handle MJPEG
(Motion JPEG). здесь пример скрипку.
могу ли я обнаружить поддержку MJPEG
? Я просмотрел Modernizr напрасно.
3 ответов
Я пробовал самый очевидный способ определить, может ли изображение быть загружено или нет:
$output = $('<img id="webcam">')
.attr('src', src)
.load(function(){alert('ok')})
.error(function(){alert('error')});
в случае, если изображение может быть загружено load
событие будет запущено, в противном случае error
. Проверено в последних Chrome и IE8. Работает, как и ожидалось.
Modernizr поддерживает только следующие форматы для обнаружения прямо сейчас: ogg, webm и h264.
элемент video имеет вызов canPlayType(format)
это будет ваш единственный вариант (если он работает для работы с mjpg). Ваша логика обнаружения будет выглядеть примерно так (не формат будет отличаться).
var videoElement = document.createElement('video');
if(!!videoElement.canPlayType)
{
var browserConfidence = videoElement.canPlayType('video/mjpeg; codecs="insert, them"');
if(browserConfidence == "probably")
{
// high confidence
}
else if(browserConfidence == "maybe")
{
// low confidence
}
else
{
// no confidence... it definately will not play
}
}
убедитесь, что вы посетите информацию W3C о canPlayType. Похоже, что тип mime должен быть "video/mjpeg", а не "видео / mjpg", как вы указали ранее.
к сожалению, для этого вам нужно будет использовать элемент управления ActiveX для поддержки mjpg в IE. См.Как встроить файл mjpeg на веб-страницу.