2011-12-15 11 views

Odpowiedz

3

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.

+0

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

4

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.

+0

No good in 2016. –

Powiązane problemy