private string CreateWorkerUrl()
{
var source = @"self.onmessage = function(e) {
if(e.data.cmd == 'playerReady') {
importScripts(e.data.alphaSynthScript);
AlphaSynth.Player.WebWorkerOutput.PreferredSampleRate = e.data.sampleRate;
new AlphaSynth.Main.AlphaSynthWebWorker(self);
}
}";
JsCode("window.URL = window.URL || window.webkitURL;");
JsCode("window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;");
Blob blob;
try
{
blob = new Blob(new[] { source }, new { type = "application/javascript" });
}
catch
{
dynamic builder = JsCode("new BlobBuilder()");
builder.append(source);
blob = builder.getBlob();
}
return JsCode("URL.createObjectURL(blob)").As<string>();
}