Как остановить скачивание mp3-файла флэш-памятью в потоковом режиме - PullRequest
1 голос
/ 16 сентября 2008

У меня есть флеш-плеер с набором песен, загруженных через XML-файл.

Файлы не начинают получать поток, пока вы не выберете один.

Если я быстро переберу все 8 файлов, флэш-память начнет пытаться загрузить каждый из 8 файлов одновременно.

Мне интересно, есть ли способ очистить загружаемый файл. Так что пропускная способность не будет израсходована, если кто-то решит щелкнуть по множеству названий треков.

Было бы замечательно что-то вроде mySound.clear или mySound.stopStreaming ..

Кто-нибудь имел эту проблему раньше?

С уважением,

Chris

Ответы [ 2 ]

1 голос
/ 03 ноября 2008

Оформить Sound.Close () .

Из документов: " Закрывает поток, вызывая прекращение любой загрузки данных. После вызова метода close () данные не могут быть прочитаны из потока. Это пример исходного кода из связанных документов:

package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;    
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.MouseEvent;
    import flash.errors.IOError;
    import flash.events.IOErrorEvent;

    public class Sound_closeExample extends Sprite {
        private var snd:Sound = new Sound();
        private var button:TextField = new TextField();
        private var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");

        public function Sound_closeExample() {
            button.x = 10;
            button.y = 10;
            button.text = "START";
            button.border = true;
            button.background = true;
            button.selectable = false;
            button.autoSize = TextFieldAutoSize.LEFT;

            button.addEventListener(MouseEvent.CLICK, clickHandler);

            this.addChild(button);
        }

        private function clickHandler(e:MouseEvent):void {

            if(button.text == "START") {

                snd.load(req);
                snd.play();        

                snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);

                button.text = "STOP";
            }
            else if(button.text == "STOP") {

                try {
                    snd.close();
                    button.text = "Wait for loaded stream to finish.";
                }
                catch (error:IOError) {
                    button.text = "Couldn't close stream " + error.message;    
                }
            }
        }

        private function errorHandler(event:IOErrorEvent):void {
                button.text = "Couldn't load the file " + event.text;
        }
    }
}
0 голосов
/ 16 сентября 2008

Если вы делаете что-то вроде:

MySoundObject = undefined;

Это должно сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...