2011-12-15 9 views

risposta

3

ho provato il modo più ovvio per rilevare se l'immagine potrebbe essere caricato o meno:

$output = $('<img id="webcam">') 
     .attr('src', src) 
     .load(function(){alert('ok')}) 
     .error(function(){alert('error')}); 

immagine Cassa In stato possibile caricare load evento sarà licenziato, altrimenti error. Controllato nel recente Chrome e IE8. Funziona come previsto.

+0

Questo non funziona sui browser Web Android. Almeno su due diversi telefoni Samsung, il browser predefinito di Android non mostra né MJPEG, né attiva un evento di carico o di errore - prova a caricare il flusso "intero" senza renderlo. – garlon4

4

Modernizr only supports the following formats for detection right now: ogg, webm and h264.

L'elemento video ha una chiamata chiamato canPlayType(format) che sarebbe davvero essere l'unica opzione (se funziona per MJPG). La logica di rilevamento sarebbe simile a questa (non il formato sarebbe diverso).

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 
    } 
} 

Assicurati di avere visit the W3C's information on canPlayType. Sembra che il tipo mime debba essere "video/mjpeg" e non "video/mjpg" come specificato in precedenza.

+0

Non valido nel 2016. –