Ich arbeite an einem Synthesizer mit der Web Audio API. Im Moment habe ich Probleme, die Impulsantwort für einen Hall in eine arrayBuffer
zu laden, damit ich sie mit dem Audio-Kontext verwenden kann.In Javascript, wenn Sie lokal arbeiten, wie man Datei vom Projektordner liest, um es als ArrayBuffer zu verwenden?
Da ich lokal arbeite, habe ich versucht, einfach die Datei mit dem IR (im selben Ordner wie die index.html, unter audio/IR/irHall.ogg
) aus dem Dateisystem zu lesen, wie ich es in Ruby-Projekten mache. Jetzt denke ich zu verstehen, dass dies aufgrund von Sicherheitsproblemen beim Ausführen von Javascript-Code im Browser nicht möglich ist.
Also habe ich versucht, diesen Ansatz, den ich in einem meiner App tutorial
function loadAudio(object, url) {
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'arraybuffer';
request.onload = function() {
context.decodeAudioData(request.response, function(buffer) {
object.buffer = buffer;
});
}
request.send();
}
gefunden, wenn ich diese Funktion mit url = 'audio/IR/irHall.ogg'
nennen gibt es mir dieser Fehler ':
dub-machine.js:63 XMLHttpRequest cannot load file:///Users/bla/projects/dub-machine/audio/IR/irHall.ogg. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.`
Ich bin Entschuldigung Wenn es rüberkommt, als hätte ich nicht viel recherchiert. Tatsächlich suche ich stundenlang nach einer Lösung und werde immer verwirrter.
Kann mir jemand eine Idee geben, wie man am besten/am besten eine Datei aus dem Projekt lädt, um den Inhalt in einem Javascript-Kontext zu verwenden?
Dank!
Der Browser betrachtet alle 'file: //' URLs aus unbekannten Domänen als Sicherheitsmaßnahme. Wenn Sie Ihren Code von einem lokalen Webserver ausführen, so dass die Domäne für die Hauptseite und die Domäne für die Datei identisch sind (wie "http: // localhost" oder was auch immer), sollte das XHR funktionieren. – Pointy
http://www.html5rocks.com/de/tutorials/file/dndfiles/ –
@Pointy Gibt es Alternativen zum Einrichten eines lokalen Webservers? Dies scheint eine Menge Arbeit zu sein, nur um eine Datei laden zu können. – Flip