Tôi đang phát triển một ứng dụng mà tôi nhận được dữ liệu hình ảnh được lưu trữ trong uint8Array. Sau đó tôi chuyển dữ liệu này thành Blob và sau đó xây dựng url hình ảnh.Blob constructor khả năng tương thích trình duyệt
đang Giản để lấy dữ liệu từ máy chủ:
var array;
var req = new XMLHttpRequest();
var url = "img/" + uuid + "_" +segmentNumber+".jpg";
req.open("GET", url, true);
req.responseType = "arraybuffer";
req.onload = function(oEvent) {
var data = req.response;
array = new Int8Array(data);
};
vị thi công:
out = new Blob([data], {type : datatype});
Các contsructor Blob đang gây ra vấn đề. Nó hoạt động tốt trên tất cả các trình duyệt ngoại trừ Chrome trên thiết bị di động và máy tính để bàn.
Sử dụng Blob:
// Receive Uint8Array using AJAX here
// array = ...
// Create BLOB
var jpeg = new Blob([array.buffer], {type : "image/jpeg"});
var url = DOMURL.createObjectURL(jpeg);
img.src = url;
Desktop Chrome mang lại cho tôi một warnning: ArrayBuffer values are deprecated in Blob Constructor. Use ArrayBufferView instead.
Mobile Chrome mang lại cho tôi một lỗi : illegal constructor
Nếu tôi thay đổi các nhà xây dựng để làm việc trên Chrome nó không thành công trên các trình duyệt khác.
tôi đăng một polyfill qua ở đây: http://stackoverflow.com/a/16545415/2382059 – casey