Trình duyệt hiện đại trừ xử lý IE MJPEG
(Motion JPEG). Here là một ví dụ.Làm cách nào để phát hiện xem trình duyệt có hỗ trợ MJPEG không?
Tôi có thể phát hiện hỗ trợ cho MJPEG
không? Tôi đã xem qua số Modernizr vô ích.
Trình duyệt hiện đại trừ xử lý IE MJPEG
(Motion JPEG). Here là một ví dụ.Làm cách nào để phát hiện xem trình duyệt có hỗ trợ MJPEG không?
Tôi có thể phát hiện hỗ trợ cho MJPEG
không? Tôi đã xem qua số Modernizr vô ích.
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.
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 đó.
Không tốt trong năm 2016. –
Đáng buồn thay vì điều này, bạn sẽ cần sử dụng điều khiển ActiveX để hỗ trợ mjpg trong IE. Xem How to embed mjpeg file on a webpage.
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