Paketflash.media
Klassepublic class Sound
VererbungSound Inheritance EventDispatcher Inheritance Object

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Über die Sound-Klasse können Sie Sounddaten in einer Anwendung bearbeiten. Mithilfe der Sound-Klasse können Sie ein neues Sound-Objekt erstellen, eine externe MP3-Datei in diesem Objekt laden und wiedergeben, den Sound-Stream beenden und auf Daten zum Sound zugreifen, beispielsweise auf Informationen zu der Bytezahl im Stream und den ID3-Metadaten. Eine umfassendere Steuerung des Sounds kann über die Soundquelle, d. h. das SoundChannel- oder Microphone-Objekt für den Sound, und über die Eigenschaften der SoundTransform-Klasse durchgeführt werden, die die Ausgabe des Sounds über die Lautsprecher des Computers steuern.

Die in einer SWF-Datei eingebetteten Sounds können Sie über die Eigenschaften in der SoundMixer-Klasse steuern.

Hinweis: Die Sound-API in ActionScript 3.0 unterscheidet sich von der in ActionScript 2.0. In ActionScript 3.0 können Sie Soundobjekte zum Steuern der zugehörigen Eigenschaften nicht in einer Hierarchie anordnen.

Beachten Sie bei Verwendung dieser Klasse das folgende Sicherheitsmodell von Flash Player:

Weitere Informationen finden Sie in den folgenden Abschnitten:

Beispiele anzeigen

Siehe auch

Microphone
SoundChannel
SoundMixer
SoundTransform
Grundlagen der Verwendung von Sound


Öffentliche Eigenschaften
 EigenschaftDefiniert von
  bytesLoaded : uint
[read-only] Gibt die derzeit verfügbare Anzahl der Byte in diesem Sound-Objekt zurück.
Sound
  bytesTotal : int
[read-only] Gibt die Gesamtanzahl der Byte in diesem Sound-Objekt zurück.
Sound
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  id3 : ID3Info
[read-only] Bietet Zugriff auf die Metadaten, die in MP3-Dateien enthalten sind.
Sound
  isBuffering : Boolean
[read-only] Gibt den Zwischenspeicherstatus externer MP3-Dateien zurück.
Sound
  length : Number
[read-only] Die Länge des aktuellen Sounds in Millisekunden.
Sound
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
  url : String
[read-only] Die URL, von der der Sound geladen wurde.
Sound
Öffentliche Methoden
 MethodeDefiniert von
  
Sound(stream:URLRequest = null, context:SoundLoaderContext = null)
Erstellt ein neues Sound-Objekt.
Sound
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird.
EventDispatcher
  
Schließt den Stream. Dadurch werden eventuelle Downloads von Daten beendet.
Sound
 Inherited
Sendet ein Ereignis in den Ereignisablauf.
EventDispatcher
 Inherited
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat.
EventDispatcher
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
  
load(stream:URLRequest, context:SoundLoaderContext = null):void
Initiiert den Ladevorgang einer externen MP3-Datei von der angegebenen URL.
Sound
  
play(startTime:Number = 0, loops:int = 0, sndTransform:SoundTransform = null):SoundChannel
Erstellt ein neues SoundChannel-Objekt zur Wiedergabe des Sounds.
Sound
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Entfernt einen Listener aus dem EventDispatcher-Objekt.
EventDispatcher
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
 Inherited
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner vorangegangenen Elementen ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 EreignisÜbersicht Definiert von
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
   Wird nach dem erfolgreichen Laden von Daten ausgelöst.Sound
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus verliert und inaktiv wird.EventDispatcher
  
id3
Wird durch ein Sound-Objekt ausgelöst, wenn ID3-Daten für einen MP3-Sound verfügbar sind.Sound
   Wird beim Auftreten eines Eingabe/Ausgabe-Fehlers ausgelöst, durch den der Ladevorgang fehlschlägt.Sound
   Wird beim Start eines Ladevorgangs ausgelöst.Sound
   Wird ausgelöst, wenn während eines Ladevorgangs Daten empfangen werden.Sound
Eigenschaftsdetail
bytesLoadedEigenschaft
bytesLoaded:uint  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt die derzeit verfügbare Anzahl der Byte in diesem Sound-Objekt zurück. Dies empfiehlt sich in der Regel nur bei extern geladenen Dateien.


Implementierung
    public function get bytesLoaded():uint
bytesTotalEigenschaft 
bytesTotal:int  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt die Gesamtanzahl der Byte in diesem Sound-Objekt zurück.


Implementierung
    public function get bytesTotal():int
id3Eigenschaft 
id3:ID3Info  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Bietet Zugriff auf die Metadaten, die in MP3-Dateien enthalten sind.

MP3-Sounddateien können ID3-Tags mit Metadaten zur Datei enthalten. Wenn ein MP3-Sound, der mit der Sound.load()-Methode geladen wurde, ID3-Tags enthält, können Sie diese Eigenschaften abfragen. Es werden nur ID3-Tags unterstützt, die den UTF-8-Zeichensatz verwenden.

Flash Player 9 und spätere Versionen unterstützen auch ID3 2.0-Tags, im Speziellen 2.3 und 2.4. In der folgenden Tabelle sind die ID3 2.0-Standardtags und der Inhaltstyp der einzelnen Tags aufgeführt. Mit der Sound.id3-Eigenschaft kann über das Format my_sound.id3.COMM, my_sound.id3.TIME usw. auf diese Tags zugegriffen werden. In der ersten Tabelle sind Tags aufgeführt, auf die über den ID3 2.0-Eigenschaftennamen oder den ActionScript-Eigenschaftennamen zugegriffen werden kann. In der zweiten Tabelle sind ID3-Tags beschrieben, die unterstützt werden, jedoch in ActionScript über keine vordefinierten Eigenschaften verfügen.

ID3 2.0-TagEntsprechende ActionScript-Eigenschaft
COMMSound.id3.comment
TALBSound.id3.album
TCONSound.id3.genre
TIT2Sound.id3.songName
TPE1Sound.id3.artist
TRCKSound.id3.track
TYERSound.id3.year

In der folgenden Tabelle sind ID3-Tags beschrieben, die unterstützt werden, jedoch in ActionScript über keine vordefinierten Eigenschaften verfügen. Auf diese Tags kann durch Aufrufen von mySound.id3.TFLT, mySound.id3.TIME usw. zugegriffen werden.

EigenschaftBeschreibung
TFLTDateityp
TIMEZeit
TIT1Beschreibung der Inhaltsgruppe
TIT2Titel/Liedtitel/Inhaltsbeschreibung
TIT3Untertitel/Detaillierte Beschreibung
TKEYErster Ton
TLANSprachen
TLENLänge
TMEDMedientyp
TOALOriginalalbum-/Film-/Präsentationstitel
TOFNOriginaldateiname
TOLYOriginalautor/Songwriter
TOPEOriginalkünstler
TORYJahr der Erstveröffentlichung
TOWNEigentümer/Lizenznehmer
TPE1Hauptkünstler/Solokünstler
TPE2Band/Orchester/Begleitung
TPE3Leitung/Detaillierte Auflistung der Künstler
TPE4Interpretation, Remix oder sonstige Bearbeitung durch
TPOSTeil eines Satzes
TPUBPublisher
TRCKTitelnummer/Position in Satz
TRDAAufnahmedaten
TRSNName des Internet-Radiosenders
TRSOEigentümer des Internet-Radiosenders
TSIZGröße
TSRCISRC (International Standard Recording Code)
TSSESoftware/Hardware und Einstellungen für die Codierung
TYERJahr
WXXXURL-Verknüpfung

Beachten Sie bei Verwendung dieser Eigenschaft das folgende Sicherheitsmodell von Flash Player:

Weitere Informationen finden Sie in den folgenden Abschnitten:


Implementierung
    public function get id3():ID3Info

Siehe auch


Beispiel

Im folgenden Beispiel werden die ID3-Informationen aus einer Audiodatei gelesen und in einem Textfeld angezeigt.

Im Konstruktor wird die Audiodatei geladen, ist jedoch nicht auf das Abspielen eingestellt. Hier wird davon ausgegangen, dass sich die Datei im SWF-Verzeichnis befindet. Das System muss über die Berechtigung zum Lesen der ID3-Tags einer geladenen Audiodatei verfügen. Wenn die Datei ID3-Informationen enthält und das Programm berechtigt ist, diese zu lesen, wird ein Event.ID3-Ereignis ausgelöst und die Eigenschaft id3 der Audiodatei wird gefüllt. Die id3-Eigenschaft enthält ein ID3Info-Objekt mit allen ID3-Informationen.

In der id3Handler()-Methode werden die ID3-Tags der Datei in id3, einem ID3Info-Klassenobjekt. Es wird ein Textfeld instanziiert, um die Liste der ID3-Tags anzuzeigen. Die for-Schleife durchläuft alle ID3 2.0-Tags und hängt den Namen und den Wert an den Inhalt des Textfelds an. Mithilfe der ID3-Info-Eigenschaften (ID3Info) werden der Interpret, der Titelname und das Album ebenfalls angehängt. ActionScript 3.0 sowie Flash Player 9 und höher unterstützen ID3 2.0-Tags, speziell 2.3 und 2.4. Wenn Sie Eigenschaften durchlaufen wie in der for-Schleife, werden nur ID3 2.0-Tags angezeigt. Die Daten aus den früheren Versionen werden jedoch ebenfalls in der id3-Eigenschaft des Titels gespeichert und können mithilfe der Eigenschaften der ID3-Info-Klasse abgerufen werden. Die Tage für ID3 1.0 befinden sich am Ende der Datei, während die ID3 2.0-Tags am Anfang der Datei stehen. (In einigen Fällen weisen Dateien sowohl die Tags der früheren als auch die der älteren Versionen an derselben Stelle auf.) Wenn eine Datei sowohl am Anfang als auch am Ende der Datei Tags beider Versionen, 1.0 und 2.0, aufweist, wird die id3Handler()-Methode zwei Mal aufgerufen. Zuerst wird die 2.0-Version und dann die 1.0-Version gelesen. Wenn nur ein ID3 1.0-Tag verfügbar ist, kann über die ID3-Eigenschaften wie id3.songname darauf zugegriffen werden. Für ID3 2.0 ruft die id3.TITS-Eigenschaft den Namen des Titels mithilfe des neuen Tags (TITS) ab.

Beachten Sie, dass für dieses Beispiel keine Fehlerverarbeitung geschrieben wurde, und wenn der ID3-Inhalt umfangreich ist, geht das Ergebnis möglicherweise über den anzeigbaren Bereich hinaus.

package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.net.URLRequest;
    import flash.media.ID3Info;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.Event;

    public class Sound_id3Example extends Sprite {
        private var snd:Sound = new Sound();       
        private var myTextField:TextField = new TextField();

        public function Sound_id3Example() {
            snd.addEventListener(Event.ID3, id3Handler);
            snd.load(new URLRequest("mySound.mp3"));
        }
    
        private function id3Handler(event:Event):void {
            var id3:ID3Info = snd.id3;

            myTextField.autoSize = TextFieldAutoSize.LEFT;
            myTextField.border = true;

            myTextField.appendText("Received ID3 Info: \n");
              
            for (var propName:String in id3) {
                myTextField.appendText(propName + " = " + id3[propName] + "\n");
            }
 
            myTextField.appendText("\n" + "Artist: " + id3.artist + "\n");
            myTextField.appendText("Song name: " + id3.songName + "\n");
            myTextField.appendText("Album: " + id3.album + "\n\n"); 
 
            this.addChild(myTextField);
        }
    }
}
isBufferingEigenschaft 
isBuffering:Boolean  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Gibt den Zwischenspeicherstatus externer MP3-Dateien zurück. Wenn der Wert auf true gesetzt ist, wird die Wiedergabe unterbrochen, während das Objekt auf weitere Daten wartet.


Implementierung
    public function get isBuffering():Boolean
lengthEigenschaft 
length:Number  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Die Länge des aktuellen Sounds in Millisekunden.


Implementierung
    public function get length():Number
urlEigenschaft 
url:String  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Die URL, von der der Sound geladen wurde. Diese Eigenschaft kann nur auf Sound-Objekte angewendet werden, die mit der Sound.load()-Methode geladen wurden. Bei Sound-Objekten, die mit einem Soundelement in der Bibliothek einer SWF-Datei verknüpft sind, ist der Wert der url-Eigenschaft null.

Da die endgültige URL noch nicht bekannt ist, hat die url-Eigenschaft beim ersten Aufrufen von Sound.load() anfänglich den Wert null. Sobald ein open-Ereignis über das Sound-Objekt ausgelöst wurde, nimmt die url-Eigenschaft einen anderen Wert an.

Die url-Eigenschaft enthält die endgültige, absolute URL, von der ein Sound geladen wurde. Der Wert von url entspricht in der Regel dem Wert, der an den stream-Parameter von Sound.load() übergeben wurde. Wenn Sie jedoch eine relative URL an Sound.load() übergeben haben, gibt der Wert der url-Eigenschaft die absolute URL an. Wird die ursprüngliche URL-Anforderung über einen HTTP-Server weitergeleitet, entspricht der Wert der url-Eigenschaft der endgültigen URL, über die die Sounddatei tatsächlich heruntergeladen wurde. Diese Protokollierung einer absoluten, endgültigen URL entspricht dem Verhalten von LoaderInfo.url.


Implementierung
    public function get url():String

Siehe auch

Konstruktordetail
Sound()Konstruktor
public function Sound(stream:URLRequest = null, context:SoundLoaderContext = null)

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt ein neues Sound-Objekt. Wenn Sie ein gültiges URLRequest-Objekt für den Sound-Konstruktor übergeben, ruft der Konstruktor automatisch die load()-Funktion für das Sound-Objekt auf. Wenn Sie kein gültiges URLRequest-Objekt für den Sound-Konstruktor übergeben, müssen Sie die load()-Funktion für das Sound-Objekt selbst aufrufen, da der Stream andernfalls nicht geladen wird.

Sobald load() für ein Sound-Objekt aufgerufen wurde, kann später keine andere Sounddatei mehr in dieses Sound-Objekt geladen werden. Erstellen Sie ein neues Sound-Objekt, wenn Sie eine andere Sounddatei laden möchten.

Parameter
stream:URLRequest (default = null) — Die URL, die auf eine externe MP3-Datei verweist.
 
context:SoundLoaderContext (default = null) — Mindestdauer in Millisekunden, in der MP3-Daten im Puffer eines Sound-Objekts gespeichert werden. Die Wiedergabe des Sound-Objekts bzw. die Fortsetzung der Wiedergabe nach einem Netzwerkausfall wird erst gestartet, nachdem mindestens diese Daten erfasst wurden. Der Standardwert lautet 1000 (1 Sekunde).
Methodendetail
close()Methode
public function close():void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Schließt den Stream. Dadurch werden eventuelle Downloads von Daten beendet. Nach dem Aufrufen der close()-Methode können möglicherweise keine Daten aus dem Stream gelesen werden.


Auslöser
IOError — Der Stream konnte nicht geschlossen werden, oder der Stream war nicht geöffnet.

Beispiel

Im folgenden Beispiel wird die Sound.close()-Methode aufgerufen, wenn der Benutzer auf die Stop-Schaltfläche klickt, und das Streaming des Sounds wird gestoppt.

Im Konstruktor wird ein Textfeld für die Start- und Stop-Schaltfläche erstellt. Wenn der Benutzer auf das Textfeld klickt, wird die Methode clickHandler() aufgerufen. Sie verwaltet das Starten und Beenden der Audiodatei. Beachten Sie, dass abhängig von der Netzwerkgeschwindigkeit oder vom Zeitpunkt des Klicks auf die Stop-Schaltfläche möglicherweise ein Großteil der Datei bereits geladen wurde, sodass es einen Moment dauern kann, bis die Wiedergabe beendet wird. Es wird ein try...catch-Block verwendet, um etwaige IO-Fehler, die beim Schließen des Streams auftreten können, abzufangen. Wenn der Sound zum Beispiel aus einem lokalen Verzeichnis geladen und nicht gestreamt wird, wird Fehler 2029 erfasst, der besagt "Dieses URLStream-Objekt verfügt nicht über einen geöffneten Stream."

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


load()Methode 
public function load(stream:URLRequest, context:SoundLoaderContext = null):void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Initiiert den Ladevorgang einer externen MP3-Datei von der angegebenen URL. Wenn Sie ein gültiges URLRequest-Objekt für den Sound-Konstruktor übergeben, wird automatisch Sound.load() aufgerufen. Sie müssen Sound.load() nur aufrufen, wenn Sie kein gültiges URLRequest-Objekt oder den Wert null für den Sound-Konstruktor übergeben.

Sobald load() für ein Sound-Objekt aufgerufen wurde, kann später keine andere Sounddatei mehr in dieses Sound-Objekt geladen werden. Erstellen Sie ein neues Sound-Objekt, wenn Sie eine andere Sounddatei laden möchten.

Beachten Sie bei Verwendung dieser Methode das folgende Sicherheitsmodell von Flash Player:

Weitere Informationen finden Sie in den folgenden Abschnitten:

Parameter

stream:URLRequest — Eine URL, die auf eine externe MP3-Datei verweist.
 
context:SoundLoaderContext (default = null) — Mindestdauer in Millisekunden, in der MP3-Daten im Puffer eines Sound-Objekts gespeichert werden. Die Wiedergabe des Sound-Objekts bzw. die Fortsetzung der Wiedergabe nach einem Netzwerkausfall wird erst gestartet, nachdem mindestens diese Daten erfasst wurden. Der Standardwert lautet 1000 (1 Sekunde).


Auslöser
IOError — Der Ladevorgang ist aufgrund eines Netzwerkfehlers fehlgeschlagen.
 
SecurityError — Über lokale nicht vertrauenswürdige SWF-Dateien kann keine Verbindung mit dem Internet hergestellt werden. Sie können dies umgehen, indem Sie die entsprechende SWF-Datei als lokal mit Netzwerkzugang oder als vertrauenswürdig klassifizieren.

Siehe auch


Beispiel

Im folgenden Beispiel wird der Ladeprozess einer Audiodatei dargestellt.

Im Konstruktor wird ein URLRequest-Objekt erstellt, um den Speicherort der Audiodatei, ein Podcast von Adobe, zu bestimmen. Die Datei wird in einen try...catch-Block geladen, um Fehler abzufangen, die möglicherweise beim Laden der Datei auftreten. Wenn ein IO-Fehler auftritt, wird die errorHandler()-Methode ebenfalls aufgerufen, und die Fehlermeldung wird in das Textfeld geschrieben, das für den Fortschrittsbericht vorgesehen ist. Während des Ladevorgangs wird ein ProgressEvent.PROGRESS-Ereignis ausgelöst und die progressHandler()-Methode wird aufgerufen. Hier wird das ProgressEvent.PROGRESS-Ereignis als Timer für die Berechnung des Ladevorgangs verwendet.

Die progressHandler()-Methode teilt den bytesLoaded-Wert, der mit dem ProgressEvent-Objekt übergeben wird, durch den bytesTotal-Wert, um den Prozentwert der bereits geladenen Audiodaten zu ermitteln. Danach werden diese Werte im Textfeld angezeigt. (Beachten Sie, dass für den Fall, dass die Datei klein ist, im Cache gespeichert ist oder sich im lokalen Verzeichnis befindet, der Fortschritt möglicherweise nicht bemerkbar ist.)

package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.ProgressEvent;
    import flash.events.IOErrorEvent;
    
    public class Sound_loadExample extends Sprite {
        private var snd:Sound = new Sound();
        private var statusTextField:TextField  = new TextField();

        public function Sound_loadExample(){

            statusTextField.autoSize = TextFieldAutoSize.LEFT;
            var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
            
            try {
            snd.load(req);
            
            snd.play();
            }
            catch (err:Error) {
                trace(err.message);
            }
 
            snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            snd.addEventListener(ProgressEvent.PROGRESS, progressHandler);
                     
            this.addChild(statusTextField);
        }
    
        private function progressHandler(event:ProgressEvent):void {
            var loadTime:Number = event.bytesLoaded / event.bytesTotal;
            var LoadPercent:uint = Math.round(100 * loadTime);
              
            statusTextField.text = "Sound file's size in bytes: " + event.bytesTotal + "\n" 
                                 + "Bytes being loaded: " + event.bytesLoaded + "\n" 
                                 + "Percentage of sound file that is loaded " + LoadPercent + "%.\n";
        }
 
        private function errorHandler(errorEvent:IOErrorEvent):void {
            statusTextField.text = "The sound could not be loaded: " + errorEvent.text;
        }
    }
}
play()Methode 
public function play(startTime:Number = 0, loops:int = 0, sndTransform:SoundTransform = null):SoundChannel

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Erstellt ein neues SoundChannel-Objekt zur Wiedergabe des Sounds. Diese Methode gibt ein SoundChannel-Objekt zurück, auf das Sie zum Beenden des Sounds und zum Überwachen der Lautstärke zugreifen können. (Greifen Sie zum Steuern von Lautstärke, Schwenkung und Balance auf das SoundTransform-Objekt zu, das dem Soundkanal zugewiesen ist.)

Parameter

startTime:Number (default = 0) — Die ursprüngliche Position in Millisekunden, ab der die Wiedergabe gestartet werden soll.
 
loops:int (default = 0) — Definiert, wie oft ein Sound als Schleife vom Wert startTime aus wiedergegeben wird, bevor die Wiedergabe im Soundkanal beendet wird.
 
sndTransform:SoundTransform (default = null) — Das ursprüngliche SoundTransform-Objekt, das dem Soundkanal zugewiesen wurde.

Rückgabewerte
SoundChannel — Ein SoundChannel-Objekt, über das der Sound gesteuert werden kann. Wenn Sie über keine Soundkarte verfügen oder keine Soundkanäle mehr vorhanden sind, gibt diese Methode null zurück. Die maximale Anzahl der gleichzeitig verfügbaren Soundkanäle ist 32.

Siehe auch


Beispiel

Im folgenden Beispiel kann der Benutzer nach dem Laden der Datei in einem grafischen Balken die Position (Startzeit) auswählen, ab der die Audiodatei abgespielt wird.

Der Konstruktor ruft die Sound.load()-Methode auf, mit dem Laden der Audiodaten zu beginnen. Als Nächstes wird die Sound.play()-Methode aufgerufen, die mit dem Abspielen des Sounds beginnt, sobald genügend Daten geladen wurden. Die Sound.play()-Methode gibt ein SoundChannel-Objekt zurück, das zur Steuerung der Audiowiedergabe verwendet werden kann. Im Textfeld werden die Anweisungen angezeigt. Um sicherzustellen, dass der Inhalt bis zu dem Punkt, ab dem der Benutzer das Audio abspielen möchte, bereits geladen wurde, wird das Sprite-Objekt bar erstellt und angezeigt, nachdem die Datei geladen wurde. Wenn die Datei erfolgreich geladen wurde, wird ein Event.COMPLETE-Ereignis ausgelöst, welches die Methode completeHandler() auslöst. Die completeHandler()-Methode erstellt dann den Balken und fügt ihn der Anzeigeliste hinzu. (Anstelle eines Shape-Objekts wird ein Sprite-Objekt verwendet, um Interaktivität zu unterstützen.) Wenn der Benutzer auf den Balken klickt, wird die clickHandler()-Methode ausgelöst.

In der clickHandler()-Methode wird die Position der x-Koordinate des Benutzerklicks, event.localX, verwendet, um festzustellen, an welcher Stelle der Benutzer mit dem Abspielen der Datei beginnen möchte. Da der Balken 100 Pixel groß ist und bei der x-Koordinate 100 Pixel beginnt, ist es einfach, den Prozentwert der Position festzustellen. Da die Datei geladen wurde, hat der Wert der length-Eigenschaft der Audiodatei die Länge der gesamten Datei in Millisekunden. Anhand der Länge der Audiodatei und der Position in der Linie wird eine Startposition der Audiodatei bestimmt. Nach dem Stoppen des Sounds wird die Audiodatei an der ausgewählten Startposition neu gestartet, die als startTime-Parameter an die play()-Methode übergeben wird.

 
package {
    import flash.display.Sprite;
    import flash.display.Graphics;
    import flash.events.MouseEvent;
    import flash.media.Sound;;
    import flash.net.URLRequest;
    import flash.media.SoundChannel;
    import flash.events.ProgressEvent;
    import flash.events.Event;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.IOErrorEvent;
    
    public class Sound_playExample1 extends Sprite {
        private var snd:Sound = new Sound();
        private var channel:SoundChannel = new SoundChannel();
        private var infoTextField:TextField = new TextField();
    
        public function Sound_playExample1() {

            var req:URLRequest = new URLRequest("MySound.mp3");
            
            infoTextField.autoSize = TextFieldAutoSize.LEFT;
            infoTextField.text = "Please wait for the file to be loaded.\n" 
                                + "Then select from the bar to decide where the file should start.";
            
            snd.load(req);               
            channel = snd.play();

            snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            snd.addEventListener(Event.COMPLETE, completeHandler);


            this.addChild(infoTextField);
        }

        private function completeHandler(event:Event):void {                
            infoTextField.text = "File is ready.";

            var bar:Sprite = new Sprite();

            bar.graphics.lineStyle(5, 0xFF0000);
            bar.graphics.moveTo(100, 100);
            bar.graphics.lineTo(200, 100);

            bar.addEventListener(MouseEvent.CLICK, clickHandler);

            this.addChild(bar);
        }
    
        private function clickHandler(event:MouseEvent):void {
            
                var position:uint = event.localX;
                var percent:uint = Math.round(position) - 100;   
                var cue:uint = (percent / 100) * snd.length;

                channel.stop();
                channel = snd.play(cue);    
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            infoTextField.text = "The sound could not be loaded: " + errorEvent.text;
        }
    }
}

Im folgenden Beispiel wird der Sound ein oder zwei Mal abgespielt, je nachdem, ob der Benutzer auf eine Schaltfläche klickt oder doppelklickt.

Im Konstruktor wird der Sound geladen und es wird ein einfaches rechteckiges Sprite-Objekt, button, erstellt. (Anstelle eines Shape-Objekts wird ein Sprite-Objekt verwendet, um Interaktivität zu unterstützen.) (Hier wird davon ausgegangen, dass sich die Audiodatei im selben Verzeichnis wie die SWF-Datei befindet). (Für dieses Beispiel wurde keine Fehlerverarbeitung geschrieben.)

Zwei Ereignis-Listener werden eingerichtet, um auf einfache Mausklicks und auf Doppelklicks zu warten. Wenn der Benutzer ein Mal klickt, wird die clickHandler()-Methode, die den Sound abspielt, aufgerufen. Wenn der Benutzer auf die Schaltfläche doppelklickt, wird die doubleClickHandler()-Methode, die die Audiodatei zwei Mal abspielt, aufgerufen. Das zweite Argument der play()-Methode wird auf 1 gesetzt, was bedeutet, dass die Wiedergabe nach dem ersten Abspielen bei der Startzeit des Sounds erneut beginnt. Die Startzeit, das erste Argument, wird auf 0 gesetzt, was bedeutet, dass die Datei ab dem Anfang abgespielt wird.

package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.media.Sound;
    import flash.net.URLRequest;

    public class Sound_playExample2 extends Sprite {
        private var button:Sprite = new Sprite(); 
        private var snd:Sound = new Sound();
            
        public function Sound_playExample2() {

            var req:URLRequest = new URLRequest("click.mp3");
            snd.load(req);               
     
            button.graphics.beginFill(0x00FF00);
            button.graphics.drawRect(10, 10, 50, 30);
            button.graphics.endFill();
     
            button.addEventListener(MouseEvent.CLICK, clickHandler);
            button.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickHandler);
     
            this.addChild(button);
        }

        private function clickHandler(event:MouseEvent):void {
            snd.play();            
        }

        private function doubleClickHandler(event:MouseEvent):void {
            snd.play(0, 2);        
        }
    }
}

Im folgenden Beispiel wird der Lade- und Abspielprozess einer Audiodatei dargestellt.

Die Datei wird im Konstruktor in einen try...catch-Block geladen, um Fehler abzufangen, die möglicherweise beim Laden der Datei auftreten. Dem Sound-Objekt wird ein Listener hinzugefügt, der auf ein IOErrorEvent-Ereignis reagiert, indem die errorHandler()-Methode aufgerufen wird. Für die Hauptanwendung wird ein weiterer Listener hinzugefügt, der auf ein Event.ENTER_FRAME-Ereignis reagiert, das als Zeitgeber für die Anzeige des Abspielfortschritts verwendet wird. Schließlich wird ein dritter Listener für den Audiokanal hinzugefügt, der auf ein iEvent.SOUND_COMPLETE-Ereignis reagiert (wenn die Audiodatei vollständig abgespielt wurde), indem er die soundCompleteHandler()-Methode aufruft. Die soundCompleteHandler()-Methode entfernt auf den Ereignis-Listener für das Ereignis Event.ENTER_FRAME.

Die enterFrameHandler()-Methode teilt den bytesLoaded-Wert, der mit dem ProgressEvent-Objekt übergeben wird, durch den bytesTotal-Wert, um den Prozentwert der Audiodaten, die geladen wurden, zu bestimmen. Der Prozentwert der Audiodaten, die abgespielt wurde, kann ermittelt werden, indem der Wert der position-Eigenschaft des Audiokanals durch die Länge der Audiodaten geteilt wird. Wenn die Audiodaten jedoch nicht vollständig geladen wurden, zeigt die length-Eigenschaft des Sound-Objekts nur die Größe der zurzeit geladenen Daten an. Eine Schätzung der endgültigen Größe der Audiodatei wird berechnet, indem der Wert der length-Eigenschaft des aktuellen Sound-Objekts durch den Wert der bytesLoaded-Eigenschaft geteilt durch den Wert der bytesTotal-Eigenschaft geteilt wird.

Beachten Sie, dass für den Fall, dass die Datei klein ist, im Cache gespeichert ist oder sich im lokalen Verzeichnis befindet, der Ladefortschritt möglicherweise nicht bemerkbar ist. Die Verzögerung zwischen dem Beginn des Ladevorgangs der Audiodaten und dem Beginn der Wiedergabe der geladenen Daten wird bestimmt durch den Wert der SoundLoaderContext.buffertime-Eigenschaft, der standardmäßig 1000 Millisekunden beträgt und zurückgesetzt werden kann.

package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.Event;
    import flash.events.IOErrorEvent;
    
    public class Sound_playExample3 extends Sprite {
        private var snd:Sound = new Sound();
        private var channel:SoundChannel;
        private var statusTextField:TextField  = new TextField();

        public function Sound_playExample3(){

            statusTextField.autoSize = TextFieldAutoSize.LEFT;

           var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3");
            
            try {
                snd.load(req);
            
                channel = snd.play();
            }
            catch (err:Error) {
                trace(err.message);
            }
                    
            snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
            channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
                    
            this.addChild(statusTextField);
        }
    
        private function enterFrameHandler(event:Event):void {    
            var loadTime:Number = snd.bytesLoaded / snd.bytesTotal;
            var loadPercent:uint = Math.round(100 * loadTime);
            var estimatedLength:int = Math.ceil(snd.length / (loadTime));
            var playbackPercent:uint = Math.round(100 * (channel.position / estimatedLength));
      
            statusTextField.text = "Sound file's size is " + snd.bytesTotal + " bytes.\n" 
                                   + "Bytes being loaded: " + snd.bytesLoaded + "\n" 
                                   + "Percentage of sound file that is loaded " + loadPercent + "%.\n"
                                   + "Sound playback is " + playbackPercent + "% complete.";     
        }
 
        private function errorHandler(errorEvent:IOErrorEvent):void {
            statusTextField.text = "The sound could not be loaded: " + errorEvent.text;
        }

        private function soundCompleteHandler(event:Event):void {
            statusTextField.text = "The sound has finished playing.";
            removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }
    }
}
Ereignisdetail
complete Ereignis
Ereignisobjekttyp: flash.events.Event
Event.type property = flash.events.Event.COMPLETE

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird nach dem erfolgreichen Laden von Daten ausgelöst.

Definiert den Wert der Eigenschaft type eines complete-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, dessen Ladevorgang beendet ist.

Siehe auch

id3 Ereignis  
Ereignisobjekttyp: flash.events.Event
Event.type property = flash.events.Event.ID3

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird durch ein Sound-Objekt ausgelöst, wenn ID3-Daten für einen MP3-Sound verfügbar sind.

Definiert den Wert der Eigenschaft type eines id3-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Sound-Objekt, über das die MP3-Datei geladen wird, für die nun ID3-Daten verfügbar sind. Das unter target angegebene Ziel ist nicht immer das Objekt in der Anzeigeliste, in der der Ereignis-Listener registriert wurde. Mit der Eigenschaft currentTarget können Sie auf das Objekt in der Anzeigeliste zugreifen, das das Ereignis derzeit verarbeitet.

Siehe auch

ioError Ereignis  
Ereignisobjekttyp: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird beim Auftreten eines Eingabe/Ausgabe-Fehlers ausgelöst, durch den der Ladevorgang fehlschlägt.

Definiert den Wert der Eigenschaft type eines ioError-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, bei dem der Eingabe/Ausgabe-Fehler auftritt.
textDer als Fehlermeldung anzuzeigende Text.

Siehe auch

open Ereignis  
Ereignisobjekttyp: flash.events.Event
Event.type property = flash.events.Event.OPEN

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird beim Start eines Ladevorgangs ausgelöst.

Definiert den Wert der Eigenschaft type eines open-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDas Netzwerkobjekt, über das eine Verbindung geöffnet wurde.

Siehe auch

progress Ereignis  
Ereignisobjekttyp: flash.events.ProgressEvent
ProgressEvent.type property = flash.events.ProgressEvent.PROGRESS

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wird ausgelöst, wenn während eines Ladevorgangs Daten empfangen werden.

Definiert den Wert der Eigenschaft type eines progress-Ereignisobjekts.

Dieses Ereignis verfügt über die folgenden Eigenschaften:

EigenschaftWert
bubblesfalse
bytesLoadedDie Anzahl der geladenen Elemente oder Byte zu dem Zeitpunkt, zu dem der Listener das Ereignis verarbeitet.
bytesTotalDie Gesamtanzahl der Elemente oder Byte, die bei einem erfolgreichen Ladevorgang schließlich geladen werden.
cancelablefalse. Es gibt kein Standardverhalten, das abgebrochen werden kann.
currentTargetDas Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet.
targetDer Protokollierungsstatus des Netzwerkobjekts.

Siehe auch

Beispiele Verwendung von Beispielen
SoundExample.as

Im folgenden Beispiel werden Informationen über Sound-Ereignisse angezeigt, die beim Öffnen und Abspielen einer MP3-Datei auftreten. Legen Sie zur Ausführung dieses Beispiels eine Datei mit dem Namen "MySound.mp3" in dem Verzeichnis ab, in dem sich die SWF-Datei befindet.
package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLRequest;

    public class SoundExample extends Sprite {
        private var url:String = "MySound.mp3";
        private var song:SoundChannel;

        public function SoundExample() {
            var request:URLRequest = new URLRequest(url);
            var soundFactory:Sound = new Sound();
            soundFactory.addEventListener(Event.COMPLETE, completeHandler);
            soundFactory.addEventListener(Event.ID3, id3Handler);
            soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            soundFactory.load(request);
            song = soundFactory.play();
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function id3Handler(event:Event):void {
            trace("id3Handler: " + event);
        }

        private function ioErrorHandler(event:Event):void {
            trace("ioErrorHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            trace("progressHandler: " + event);
        }
    }
}




 

Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht

Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/media/Sound.html