2011-12-15 207 views

回答

3

我試過最明顯的方法來檢測,如果圖像可以加載與否:

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

如果圖像可以加載load事件將被解僱,否則error。在最近的Chrome和IE8中檢查了這一點。按預期工作。

+0

這不適用於Android網頁瀏覽器。至少在兩個不同的三星手機上,默認的Android瀏覽器既不顯示MJPEG,也不會觸發加載或錯誤事件 - 它會嘗試加載「整個」流而不顯示它。 – garlon4 2012-11-08 19:15:17

4

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

視頻元素有一個電話叫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 
    } 
} 

確保你的visit the W3C's information on canPlayType。它看起來像mime類型應該是「video/mjpeg」,而不是你之前指定的「video/mjpg」。

+0

2016年不行。 – 2016-05-26 11:12:51

相關問題