Frage

Ich habe ein Projekt mit einem Bündel von externen Sounds zu einer SWF-Datei. Ich möchte, dass sie spielen, aber jedes Mal, wenn ich versuchen, eine neue URL in das Klangobjekt laden Sie es mit entweder fehlschlägt,

  

Fehler # 2068: Ungültige Ton

oder wirft eine ioError mit

  

Fehler # 2032 Stream Error

// mit Pfad mit dem Präfix Tried "http: // .." "file: // .." "// .." und "..")

var path:String = "http://../assets/the_song.mp3";

var url:URLRequest = new URLRequest( path );

var sound:Sound = new Sound();

sound.addEventListener( IOErrorEvent.IO_ERROR, ioErrorHandler);

sound.addEventListener( SecurityErrorEvent.SECURITY_ERROR, secHandler);

sound.load(url);
War es hilfreich?

Lösung

Nun, ich habe gerade einen Test gemacht, indem sie ein mp3 in einem Verzeichnis setzen: soundTest/assets/song.mp3 dann eine swf erstellen, die die mp3 in ein anderes Verzeichnis nennt. soundTest/swfs/soundTest.swf und wenn ich var path:String = "../assets/song.mp3"; verwenden dann kompiliert es ohne Fehler

Was ist Ihre aktuelle Verzeichnisstruktur?

Andere Tipps

Es sei denn, Sie gehen eine vollständige URL setzen, nicht http: // oder file: //

Der Ton kann eine MP3-Datei aus einer vollständigen oder relativer URL laden. Sie müssen nur sicherstellen, dass Ihre URL korrekt und gültig ist.

Zum Beispiel, wenn der vollständige Pfad zur Datei ist http: //www.something. com / assets / the_song.mp3 wäre ein Weg der "/assets/the_song.mp3" arbeiten.

Sie sollten wirklich herunterladen HttpFox für FireFox. Diese SNIFFER können Sie sehen, welche Daten durch die browswer fließt. Sie können die Dateien seiner Lade, einschließlich der Pfade zu jeder sehen, und Sie können sogar POST schnuppern und GET-Variablen. Dies wird Ihnen zeigen, wo die Dateien aus gezogen werden und aus der Basis, dass Sie Ihre relative Pfade entsprechend beheben können.

https://addons.mozilla.org/en-US/firefox / addon / 6647

Wichtig:

Alle externen Vermögenswerte aus der SWF genannt sind in Bezug auf die HTML-Datei sie zu laden, wenn auf dem Netz geladen, nicht die SWF. Die einzige Ausnahme, und das ist etwas, das mit AS3 gestartet, FLV die sind relativ zum SWF, nicht das HTML-Dokument der SWF wie jeder anderen Asset-Laden. Aus diesem Grunde Sniffer ein wichtiges Instrument ist, ich meinen Kopf für eine Weile gekratzt, bis ich die URL in dem Sniffer bemerkt wurde einen seltsamen Pfad aufrufe.

Im Folgenden finden Sie, wie Sie Sound laden können.

var soundRequest:URLRequest = "path/to/file.mp3";
var s:Sound = new Sound(soundRequest);
var sChannel = s.play(0, int.MAX_VALUE); //Causes it to repeat by the highest possible number to flash.
//Above starts the sound immediatly (Streaming);

//Now to wait for completion instead, pretend we didnt start it before. s.addEventLister(Event.SOUND_COMPLETE, onSComplete, false, 0, true); function onSComplete(e:Event):void { var sChannel = s.play(0, int.MAX_VALUE); //Causes it to repeat by the highest possible }

In beiden Protokollen RTMP & HTTP, sollte der Pfad sein - "path / to / mp3: file.mp3" oder "path / to / mp3: Datei". Ich kann mich erinnern. Bitte überprüfen Sie beide.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top