Pregunta

Tengo un proyecto con un montón de sonidos externos a un SWF.Quiero reproducirlos, pero cada vez que intento cargar una nueva URL en el objeto de sonido, falla:

Error nº 2068:Sonido no válido

o genera un ioError con

Error #2032 Error de transmisión

// Probé con la ruta con el prefijo "http://.." "file://.." "//.." y "..")

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);
¿Fue útil?

Solución

Bueno, acabo de hacer una prueba poniendo un mp3 en un directorio: soundTest/assets/song.mp3 luego creando un swf que llame al mp3 en otro directorio: soundTest/swfs/soundTest.swf y cuando uso var path:String = "../assets/song.mp3"; luego se compila sin errores.

¿Cuál es su estructura de directorio real?

Otros consejos

A menos que vayas a poner una URL completa, no uses http:// ni file://

Sound puede cargar un archivo mp3 desde una URL completa o relativa.Sólo necesitas asegurarte de que tu URL sea correcta y válida.

Por ejemplo, si la ruta completa al archivo es http://www.something.com/assets/the_song.mp3, una ruta de "/assets/the_song.mp3" funcionaría.

Realmente deberías descargar httpfox para FireFox.Este SNIFFER le permite ver qué datos fluyen a través del navegador.Puede ver los archivos que se están cargando, incluidas las rutas a cada uno, e incluso puede detectar las variables POST y GET.Esto le mostrará de dónde se extraen los archivos y, en función de eso, podrá corregir sus rutas relativas en consecuencia.

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

Importante:

Todos los recursos externos llamados desde el SWF son relativos al archivo html que los carga cuando se cargan en la web, no al SWF.La única excepción, y esto es algo que comenzó con AS3, los FLV son relativos al SWF, no al documento HTML que carga el SWF como cualquier otro activo.Es por eso que los SNIFFERS son una herramienta importante. Me rasqué la cabeza por un tiempo hasta que noté que la URL en el sniffer llamaba a una ruta extraña.

A continuación se muestra cómo puede cargar sonido.

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 }

En ambos protocolos, RTMP y HTTP, la ruta debe ser: "ruta/a/mp3:archivo.mp3" o "ruta/a/mp3:archivo".Puedo recordar.Por favor marque ambos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top