Nowoczesne przeglądarki z wyjątkiem IE uchwyt MJPEG
(Motion JPEG). Here to przykład skrzypiec.Jak wykryć, czy przeglądarka obsługuje MJPEG?
Czy mogę wykryć obsługę dla MJPEG
? Na próżno przejrzałem Modernizr.
Nowoczesne przeglądarki z wyjątkiem IE uchwyt MJPEG
(Motion JPEG). Here to przykład skrzypiec.Jak wykryć, czy przeglądarka obsługuje MJPEG?
Czy mogę wykryć obsługę dla MJPEG
? Na próżno przejrzałem Modernizr.
Próbowałem najbardziej oczywisty sposób, aby wykryć, czy obraz może być załadowany lub nie:
$output = $('<img id="webcam">')
.attr('src', src)
.load(function(){alert('ok')})
.error(function(){alert('error')});
W przypadku obrazu można załadować load
zdarzenie zostanie zwolniony, inaczej error
. Sprawdziliśmy to w najnowszych przeglądarkach Chrome i IE8. Działa zgodnie z oczekiwaniami.
Modernizr only supports the following formats for detection right now: ogg, webm and h264.
Element wideo ma połączenia o nazwie canPlayType(format)
że rzeczywiście byłoby jedyną opcją (jeśli działa dla MJPG). Twoja logika wykrywania wyglądałaby mniej więcej tak (nie byłby inny format).
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
}
}
Upewnij się, że jesteś visit the W3C's information on canPlayType. Wygląda na to, że typem MIME powinno być "wideo/mjpeg", a nie "wideo/mjpg", jak podano wcześniej.
No good in 2016. –
Niestety do tego potrzebowałbyś użyć formantu ActiveX do obsługi mjpg w IE. Zobacz How to embed mjpeg file on a webpage.
To nie działa w przeglądarkach internetowych na Androida. Przynajmniej na dwóch różnych telefonach Samsung, domyślna przeglądarka Android ani nie pokazuje MJPEG, ani nie wywołuje zdarzenia obciążenia lub błędu - próbuje załadować "cały" strumień bez renderowania go. – garlon4