Ошибка № 2044: Необработанное событие IOErrorEvent :. text = Ошибка № 2032: Ошибка потока

Добрый день, я работаю в приложении Android / IOS с использованием AIR 3.5. В этом проекте я загружаю ZIP-файл и извлекаю его в определенную папку, после чего использую активы (IMG, XML и звуки), все работает нормально, но когда я загружаю звуки, он продолжает показывать эту ошибку. > Ошибка № 2044: необработанное событие IOErrorEvent :. text = Ошибка № 2032: Ошибка потока. Я попытался указать ему статическое местоположение на диске Android, но произошла та же ошибка. Я пробовал использовать URLRequest, FileStream, URLStream, и произошло то же самое. Я проследил все ванны файлов в папке, и это дает мне все ванны правильно. Это код.

trace('AliSoundFile/' + ob.sound);          
var soundFile:File = File.documentsDirectory.resolvePath('AliSoundFile/'+ob.sound);
var files:Array = soundFile.getDirectoryListing();
            trace((File.documentsDirectory.resolvePath('AliSoundFile/'+ob.sound).nativePath) );
//sound = new Sound( new URLRequest ('AliSoundFile/1.mp3'));
sound.addEventListener(IOErrorEvent.IO_ERROR, sound_ioError);
for ( var i:uint = 0 ; i < files.length ; i++)
{
      if (files[i].isDirectory )
    {
       var arr:Array = files[i].getDirectoryListing();
        for ( var j:uint = 0 ;  j <  arr.length ; j++)
        trace('J:-> ',arr[j].nativePath);
    }
    trace('I:-> ',files[i].nativePath);
}
soundStreen = new FileStream();
soundStreen.openAsync(soundFile, FileMode.READ);
soundStreen.addEventListener( Event.COMPLETE, soundStreen_complete); 
soundStreen.addEventListener( IOErrorEvent.IO_ERROR, soundStreen_ioError); 
trace('end');
    private function soundStreen_complete(e:Event):void 
    {
        var ba:ByteArray = new ByteArray(); 
        soundStreen.readBytes( ba );
        _loadSound = new Loader();
        _loadSound.contentLoaderInfo.addEventListener( Event.COMPLETE, soundLoadbytesComplete );
        _loadSound.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadSound_progress);
        _loadSound.loadBytes( ba );
    }

    private function soundLoadbytesComplete(e:Event):void 
    {
        sound.play();
        sound = e.currentTarget.content as Sound;
        soundStreen.close();
    }

Кто угодно может мне с этим помочь. Спасибо


person Ali Abu Ras    schedule 27.02.2013    source источник


Ответы (3)


Во-первых: для обработки этих необработанных исключений добавьте addEventListener для IOErrorEvent.IO_ERROR в contentLoaderInfo Во-вторых: для загрузки SWF-файлов или файлов изображений (JPG, PNG или GIF) используется класс загрузчика (см. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html), поэтому проблема в том, что вы передаете недопустимый поток (Sound streem). Чтобы воспроизвести файл, проверьте следующее: http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7d25.html

person Azzy Elvul    schedule 27.02.2013
comment
Спасибо, я использовал дескриптор IOError, и он не дает мне ошибки ??! soundStreen.addEventListener (IOErrorEvent.IO_ERROR, soundStreen_ioError); частная функция soundStreen_ioError (e: IOErrorEvent): void {trace (Произошла ошибка, и это выглядело так., e.text);}, и я использовал загрузчик для загрузки байтов soundStreen.addEventListener (IOErrorEvent.IO_ERROR, soundStreen_ioError) ; Теперь я вижу ваши ссылки, спасибо :) - person Ali Abu Ras; 27.02.2013
comment
Ошибка IOError возникает из loadBytes из _loadSound, а не из soundStreem - person Azzy Elvul; 27.02.2013
comment
Здравствуйте, я решил это :), используя эту статью stackoverflow.com/questions/12033442/ Спасибо. - person Ali Abu Ras; 27.02.2013

У нас были похожие проблемы 2032 года, которые были обнаружены в результате обновления Apache 2.4. С тех пор мы откатили Apache, и все в порядке!

person ziggy321    schedule 12.04.2013

Я также получал эту ошибку, хотя обрабатывал IOErrorEvent ... или так я думал, но оказалось, что HTTPStatusEvent (500 в моем случае) запускался до события IOError, и я удалял прослушиватели событий в моем HTTPStatusEvent обработчик перед событием IOError. Дерп!

person AlphaCactus    schedule 30.07.2014