Wie eine MP3-Datei, um zu verhindern durch Flash heruntergeladen werden, wenn im Streaming-Modus

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

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe einen Flash-Player, der eine Reihe von Songs geladen über eine XML-Datei hat.

Die Dateien nicht starten Strom bekommen, bis Sie eine auswählen.

Wenn ich schnell Zyklus durch jede der 8-Dateien, dann blinken beginnt versuchen, jede der 8-Dateien zur gleichen Zeit zum Download bereit.

Ich frage mich, ob es einen Weg gibt, um die Datei zu löschen, die heruntergeladen wird. So dass Bandbreite nicht aufgegessen, wenn jemand auf vielen Titelnamen klicken entscheidet.

So etwas wie mySound.clear wäre toll, oder mySound.stopStreaming ..

Hat jemand dieses Problem hatte vor?

Grüße,

Chris

War es hilfreich?

Lösung

Schauen Sie sich Sound.close () .

Aus der Dokumentation: „. Schließt den Stream, so dass eventuelle Downloads von Daten einzustellen Keine Daten aus dem Stream gelesen werden können, nachdem die Methode close () aufgerufen wird,

Dies ist der Quellcode Beispiel von den verlinkten Dokumenten:

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;
        }
    }
}

Andere Tipps

Wenn Sie so etwas wie:

MySoundObject = nicht definiert;

Das sollte es tun.

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