9

现代浏览器除了 IE 句柄MJPEG( Motion JPEG )。是一个示例小提琴。

我可以检测到对 的支持MJPEG吗?我徒劳地浏览了Modernizr 。

4

3 回答 3

4

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”,而不是您之前指定的“video/mjpg”。

于 2011-12-19T15:41:56.893 回答
3

我尝试了最明显的方法来检测图像是否可以加载:

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

如果可以加载图像,load则将触发事件,否则error. 在最近的 Chrome 和 IE8 中检查了这一点。按预期工作。

于 2011-12-19T15:55:52.883 回答
1

遗憾的是,您需要使用 ActiveX 控件来支持 IE 中的 mjpg。请参阅如何在网页上嵌入 mjpeg 文件

于 2011-12-21T20:10:23.227 回答