2011-12-15 7 views

Trả lời

3

Tôi đã thử cách rõ ràng nhất để phát hiện nếu hình ảnh có thể được nạp hay không:

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

Trong trường hợp hình ảnh có thể được nạp load kiện này sẽ bị sa thải, nếu không error. Đã kiểm tra điều này trong Chrome và IE8 gần đây. Hoạt động như mong đợi.

+0

Tính năng này không hoạt động trên trình duyệt web Android. Ít nhất trên hai điện thoại Samsung khác nhau, trình duyệt mặc định của Android không hiển thị MJPEG, cũng không kích hoạt sự kiện tải hoặc lỗi - nó cố gắng tải luồng "toàn bộ" mà không hiển thị nó. – garlon4

4

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

Yếu tố video có một cuộc gọi gọi canPlayType(format) đó thực sự sẽ là lựa chọn duy nhất của bạn (nếu nó hoạt động cho mjpg). Logic phát hiện của bạn sẽ trông giống như thế này (không phải định dạng sẽ khác nhau).

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

Đảm bảo bạn visit the W3C's information on canPlayType. Có vẻ như loại mime phải là "video/mjpeg" chứ không phải "video/mjpg" như bạn đã chỉ định trước đó.

+0

Không tốt trong năm 2016. –