diff options
Diffstat (limited to 'loadMusic.js')
| -rw-r--r-- | loadMusic.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/loadMusic.js b/loadMusic.js new file mode 100644 index 0000000..6353ae7 --- /dev/null +++ b/loadMusic.js @@ -0,0 +1,33 @@ +self.addEventListener('message', function(e) {
+ var data = e.data;
+ switch (data.cmd) {
+ case 'load':
+ var request = new XMLHttpRequest();
+// var req_url = "cgi-bin/proxy?"+encodeURI(data.url);
+ var req_url = "cgi-bin/proxy?"+data.url;
+ request.open("GET", req_url, true);
+ request.responseType = "arraybuffer";
+
+ request.onload = function() {
+ var response = ab2str(request.response);
+ if(response == "failed")
+ self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'Getthing content has failed.'});
+ else
+ self.postMessage({'result' : 'success', 'url' : data.url, "response" : request.response});
+ }
+
+ request.onerror = function() {
+ self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'BufferLoader: XHR error'});
+ }
+
+ request.send();
+
+ break;
+ default:
+ self.postMessage({'result' : 'failed', 'url' : data.url, "response" : 'Unknown command: ' + data.msg});
+ };
+}, false);
+
+function ab2str(buf) {
+ return String.fromCharCode.apply(null, new Uint8Array(buf, 0, 6));
+}
|
