Comment lire un son dans Actionscript 3 qui ne se trouve pas dans le même répertoire que le fichier SWF?

StackOverflow https://stackoverflow.com/questions/108276

Question

J'ai un projet avec un tas de sons externes dans un fichier SWF. Je veux les lire, mais chaque fois que je tente de charger une nouvelle URL dans l'objet son, il échoue avec l'un ou l'autre,

  

Erreur n ° 2068: son non valide

ou déclenche une erreur ioError avec

  

Erreur n ° 2032 Erreur de flux

// Essayé avec le chemin précédé de " http: //.." " fichier: //.." " //.." et ".."

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);
Était-ce utile?

La solution

Eh bien, je viens juste de faire un test en plaçant un mp3 dans un répertoire: soundTest / assets / song.mp3 , puis en créant un swf qui appelle le mp3 dans un autre répertoire: soundTest /swfs/soundTest.swf et lorsque j'utilise chemin var: String = "../ assets / song.mp3", il se compile sans erreur.

Quelle est votre structure de répertoire actuelle?

Autres conseils

Sauf si vous allez mettre une URL complète, n'utilisez pas http: // ou file: //

Le son peut charger un fichier mp3 à partir d’une URL complète ou relative. Vous devez simplement vous assurer que votre URL est correcte et valide.

Par exemple, si le chemin d'accès complet au fichier est http: //www.something. com / assets / the_song.mp3 , un chemin d'accès de " /assets/the_song.mp3" fonctionnerait.

Vous devriez vraiment télécharger httpfox pour FireFox. Ce SNIFFER vous permet de voir quelles données circulent dans le navigateur. Vous pouvez voir les fichiers qu'il charge, y compris les chemins d'accès à chacun, et vous pouvez même renifler les variables POST et GET. Cela vous montrera d'où les fichiers sont extraits et vous pouvez vous en servir pour corriger vos chemins relatifs en conséquence.

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

Important:

Tous les actifs externes appelés à partir du fichier SWF sont relatifs au fichier HTML les chargeant lorsqu'ils sont chargés sur le Web, pas au fichier SWF. La seule exception, et c'est quelque chose qui a commencé avec AS3, les fichiers FLV sont relatifs au fichier SWF, pas au document HTML chargeant le fichier SWF comme tous les autres éléments. C’est la raison pour laquelle SNIFFERS est un outil important. Je me suis gratté la tête pendant un moment jusqu’à ce que j’ai remarqué que l’URL dans le renifleur appelait un chemin étrange.

Vous trouverez ci-dessous comment charger le son.

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 }

Dans les deux protocoles, RTMP & amp; HTTP, le chemin devrait être - " chemin / vers / mp3: fichier.mp3 " ou "chemin / vers / mp3: fichier". Je peux m'en souvenir. Veuillez cocher les deux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top