IE ハンドルMJPEG
( Motion JPEG ) を除く最新のブラウザ。これがフィドルの例です。
のサポートを検出できますMJPEG
か? Modernizrを無駄に調べました。
IE ハンドルMJPEG
( Motion JPEG ) を除く最新のブラウザ。これがフィドルの例です。
のサポートを検出できますMJPEG
か? Modernizrを無駄に調べました。
Modernizr は現在、ogg、webm、および 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
}
}
canPlayTypeに関する W3C の情報にアクセスしてください。MIME タイプは、先ほど指定した「video/mjpg」ではなく、「video/mjpeg」にする必要があるようです。
画像をロードできるかどうかを検出する最も明白な方法を試しました。
$output = $('<img id="webcam">')
.attr('src', src)
.load(function(){alert('ok')})
.error(function(){alert('error')});
画像をロードできた場合はload
イベントが発生し、それ以外の場合はerror
. 最近のChromeとIE8でこれを確認しました。期待どおりに動作します。
残念ながら、これには、IEでmjpgをサポートするためにActiveXコントロールを使用する必要があります。Webページにmjpegファイルを埋め込む方法を参照してください。