ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.media 

SoundChannel  - AS3

Paketflash.media
Klassepublic final class SoundChannel
VererbungSoundChannel Inheritance EventDispatcher Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die SoundChannel-Klasse steuert Sound in einer Anwendung. Jeder Sound ist einem Soundkanal zugewiesen, und die Anwendung kann über mehrere Soundkanäle verfügen, die zusammengemischt werden. Die SoundChannel-Klasse enthält eine stop()-Methode, Eigenschaften zum Überwachen der Amplitude (Lautstärke) eines Kanals und eine Eigenschaft zum Zuweisen eines SoundTransform-Objekts zu einem Kanal.

Beispiele anzeigen

Verwandte API-Elemente



Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  leftPeak : Number
[schreibgeschützt] Die aktuelle Amplitude (Lautstärke) des linken Kanals von 0 (stumm) bis 1 (volle Amplitude).
SoundChannel
  position : Number
[schreibgeschützt] Wenn Sound abgespielt wird, zeigt die Positionseigenschaft die aktuelle Stelle, die in der Sounddatei abgespielt wird, in Millisekunden an.
SoundChannel
  rightPeak : Number
[schreibgeschützt] Die aktuelle Amplitude (Lautstärke) des rechten Kanals von 0 (stumm) bis 1 (volle Amplitude).
SoundChannel
  soundTransform : flash.media:SoundTransform
Das SoundTransform-Objekt, das dem Soundkanal zugewiesen wurde.
SoundChannel
Öffentliche Methoden
 MethodeDefiniert von
 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
 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
 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
  
Beendet die Wiedergabe des im Kanal wiedergegebenen Sounds.
SoundChannel
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
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 Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
EventDispatcher
Ereignisse
 Ereignis Übersicht Definiert von
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player oder eine AIR-Anwendung den Betriebssystemfokus erhält und aktiv wird.EventDispatcher
 Inherited[broadcast event] Wird ausgelöst, wenn Flash Player- oder die AIR-Anwendung den Fokus verliert und inaktiv wird.EventDispatcher
  Wird ausgelöst, wenn die Wiedergabe eines Sounds beendet ist.SoundChannel
Eigenschaftendetails

leftPeak

Eigenschaft
leftPeak:Number  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die aktuelle Amplitude (Lautstärke) des linken Kanals von 0 (stumm) bis 1 (volle Amplitude).



Implementierung
    public function get leftPeak():Number

position

Eigenschaft 
position:Number  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Wenn Sound abgespielt wird, zeigt die Positionseigenschaft die aktuelle Stelle, die in der Sounddatei abgespielt wird, in Millisekunden an. Wenn Sound beendet oder angehalten wurde, zeigt die Positionseigenschaft die zuletzt abgespielte Stelle in der Sounddatei an.

Häufig wird der Wert der Eigenschaft position gespeichert, wenn der Sound gestoppt wird. Sie können die Wiedergabe später fortsetzen, indem Sie sie an der gespeicherten Position starten.

Wenn der Sound in einer Schleife wiedergegeben wird, wird position am Anfang jeder Schleife auf 0 zurückgesetzt.



Implementierung
    public function get position():Number

rightPeak

Eigenschaft 
rightPeak:Number  [schreibgeschützt]

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Die aktuelle Amplitude (Lautstärke) des rechten Kanals von 0 (stumm) bis 1 (volle Amplitude).



Implementierung
    public function get rightPeak():Number

soundTransform

Eigenschaft 
soundTransform:flash.media:SoundTransform

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Das SoundTransform-Objekt, das dem Soundkanal zugewiesen wurde. Ein SoundTransform-Objekt enthält Eigenschaften zum Festlegen von Lautstärke, Schwenkung sowie Zuordnung von linkem und rechtem Lautsprecher.



Implementierung
    public function get soundTransform():flash.media:SoundTransform
    public function set soundTransform(value:flash.media:SoundTransform):void

Verwandte API-Elemente

Methodendetails

stop

()Methode
public function stop():void

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Beendet die Wiedergabe des im Kanal wiedergegebenen Sounds.


Beispiel  ( Verwendung dieses Beispiels )

Im folgenden Beispiel kann der Benutzer eine Sounddatei anhalten und fortsetzen.

Im Konstruktor wird die Sounddatei geladen. (In diesem Beispiel wird davon ausgegangen, dass sich die Datei im selben Verzeichnis wie die SWF-Datei befindet.) Als Schaltfläche, mit der der Benutzer Sound abspielen oder anhalten kann, wird ein Textfeld verwendet. Wenn der Benutzer das Textfeld button auswählt, wird die clickHandler()-Methode aufgerufen.

In der clickHandler()-Methode wird Sound auf die Wiedergabe eingestellt und einem Soundkanal zugewiesen, wenn der Benutzer das Textfeld zum ersten Mal auswählt. Wenn der Benutzer das Textfeld das nächste Mal auswählt, wird die Soundwiedergabe angehalten. Die position-Eigenschaft des Soundkanals zeichnet die Position des Sounds zum Zeitpunkt des Stopps auf. Diese Eigenschaft wird verwendet, um den Sound ab dieser Position weiter abzuspielen, nachdem der Benutzer das Textfeld ausgewählt hat, um die Wiedergabe fortzusetzen. Bei jedem Aufrufen der Sound.play()-Methode wird ein neues SoundChannel-Objekt erstellt und der Variablen channel zugewiesen. Das Soundobjekt muss einem SoundChannel-Objekt zugewiesen werden, um mithilfe der Methode stop() des Soundkanals den Sound anzuhalten.

package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.TextField;
    import flash.events.MouseEvent;
    import flash.text.TextFieldAutoSize;
            
    public class SoundChannel_stopExample extends Sprite {
        private var snd:Sound = new Sound();
        private var channel:SoundChannel = new SoundChannel();
        private var button:TextField = new TextField();

        public function SoundChannel_stopExample() {
            var req:URLRequest = new URLRequest("MySound.mp3");
            snd.load(req);
            
            button.x = 10;
            button.y = 10;
            button.text = "PLAY";
            button.border = true;
            button.background = true;
            button.selectable = false;
            button.autoSize = TextFieldAutoSize.CENTER;

            button.addEventListener(MouseEvent.CLICK, clickHandler);

            this.addChild(button);
        }

        private function clickHandler(e:MouseEvent):void {
            var pausePosition:int = channel.position;

            if(button.text == "PLAY") {
                channel = snd.play(pausePosition);
                button.text = "PAUSE";
            } 
            else {
                channel.stop();
                button.text = "PLAY";
            }
        }
    }
}
Ereignisdetails

soundComplete

Ereignis
Ereignisobjekttyp: flash.events.Event
Eigenschaft Event.type = flash.events.Event.SOUND_COMPLETE

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0, Flash Player 9, Flash Lite 4

Wird ausgelöst, wenn die Wiedergabe eines Sounds beendet ist.

Die Event.SOUND_COMPLETE-Konstante definiert den Wert der type-Eigenschaft eines soundComplete-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 SoundChannel-Objekt, in dem die Wiedergabe eines Sounds beendet wurde.

Beispiel  ( Verwendung dieses Beispiels )

Im folgenden Beispiel wählt der Benutzer Titel aus einer Wiedergabeliste aus und wählt dann „Play“, um die Lieder in der ausgewählten Reihenfolge abzuspielen.

Im Konstruktor wird ein Textfeld definiert, das die Liste der Titel sowie eine Zeile, die zum Abspielen ausgewählt wird, enthält. (Normalerweise werden Schaltflächen für die Wiedergabe und Listenfelder für Titellisten verwendet.) Ein Textformatobjekt wird definiert, das das Format der Titel nach der Auswahl zu kursiv ändert. Wenn ein Benutzer das Textfeld auswählt, wird die Methode clickHandler() aufgerufen.

In der clickHandler()-Methode gibt die getLineIndexAtPoint()-Methode des Textfeld-Objekts den Index der Zeile, die der Benutzer ausgewählt hat, zurück. Mithilfe des Zeilenindex ruft die Methode getLineText() den Textinhalt ab. Mit der if-Anweisung wird überprüft, ob der Benutzer eine Auswahl für die Wiedergabe getroffen oder der Wiedergabeliste einen Titel hinzufügt hat. Wenn der Benutzer sich für das Abspielen entschieden hat und ein Titel ausgewählt wurde, wird der Ereignis-Listener für den Mausklick entfernt und die playNext()-Methode aufgerufen, um mit der Wiedergabe der Titel zu beginnen. Wenn der Benutzer einen Titel ausgewählt hat, wird der Inhalt der Zeile dem Array songList hinzugefügt und das Format der Zeile wird auf kursiv eingestellt.

Die playNext()-Methode durchläuft die Arrayliste, um die einzelnen Titel zu laden und abzuspielen. Der Titel wird auch einem Soundkanal zugewiesen. Ein Ereignis-Listener für den Soundkanal wird hinzugefügt, um zu reagieren, wenn ein Titel abgespielt wurde und das Ereignis Event.SOUND_COMPLETE ausgelöst wird. Die soundCompleteHandler()-Methode ruft dann die Methode playNext() auf, um den nächsten Titel abzuspielen. Dieser Prozess wird fortgesetzt, bis alle im Array aufgeführten Titel abgespielt wurden.

package {
    import flash.display.Sprite;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.MouseEvent;
    import flash.text.TextFormat;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.events.IOErrorEvent;

    public class SoundChannel_event_soundCompleteExample extends Sprite {
        private var channel:SoundChannel = new SoundChannel();
        private var songList:Array = new Array();
        private var listTextField:TextField = new TextField();
        private var songFormat:TextFormat = new TextFormat();
        private var arrayIndex:int = 0;
        private var songSelected:Boolean = false;
        
        public function SoundChannel_event_soundCompleteExample() {
            
            listTextField.autoSize = TextFieldAutoSize.LEFT;
            listTextField.border = true
            listTextField.background = true;
            listTextField.text = "Song1.mp3\n" + "Song2.mp3\n" 
                                + "Song3.mp3\n" + "Song4.mp3\n" + "PLAY";
        
            songFormat.italic = true;
 
            listTextField.addEventListener(MouseEvent.CLICK, clickHandler);
                        
            addChild(listTextField);
        }
        
        private function clickHandler(e:MouseEvent):void {
            var index:int = listTextField.getLineIndexAtPoint(e.localX, e.localY);
            var line:String = listTextField.getLineText(index);
            var firstIndex:uint = listTextField.getLineOffset(index);
            var playLine:uint = listTextField.numLines - 1;

                if((index == playLine) && (songSelected == true)) {
                    listTextField.removeEventListener(MouseEvent.CLICK, clickHandler);
                    playNext();       

                } else if (index != playLine) {
                     songList.push(line.substr(0, (line.length - 1)));
                     listTextField.setTextFormat(songFormat, firstIndex, 
                                (firstIndex + listTextField.getLineLength(index)));     
                    songSelected = true;
                 }
        }

        private function playNext():void {
 
             if(arrayIndex < songList.length) {
                var snd:Sound = new Sound();
                snd.load(new URLRequest(songList[arrayIndex]));
                channel = snd.play();
                
                channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);
                arrayIndex++;
 
            } else {
                songSelected = false;
                    
                while(arrayIndex > 0) {
                    songList.pop();
                    arrayIndex--;
                }
            }
        }    

        private function soundCompleteHandler(e:Event):void {
            playNext();
        }

        private function errorHandler(errorEvent:IOErrorEvent):void {
            trace(errorEvent.text);
        }
    }
}
SoundChannelExample.as

Im folgenden Beispiel wird eine MP3-Datei geladen und abgespielt und es werden Informationen über Soundereignisse angezeigt, die beim Laden und Abspielen der MP3-Datei auftreten. Ein Timerobjekt stellt alle 50 Millisekunden aktualisierte Informationen zur Position des Abspielkopfs bereit. 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;
    import flash.utils.Timer;

    public class SoundChannelExample extends Sprite {
        private var url:String = "MySound.mp3";
        private var soundFactory:Sound;
        private var channel:SoundChannel;
        private var positionTimer:Timer;

        public function SoundChannelExample() {
            var request:URLRequest = new URLRequest(url);
            soundFactory = 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);

            channel = soundFactory.play();
            channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler);

            positionTimer = new Timer(50);
            positionTimer.addEventListener(TimerEvent.TIMER, positionTimerHandler);
            positionTimer.start();
        }
        

        private function positionTimerHandler(event:TimerEvent):void {
            trace("positionTimerHandler: " + channel.position.toFixed(2));
        }

        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);
            positionTimer.stop();       
        }

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

        private function soundCompleteHandler(event:Event):void {
            trace("soundCompleteHandler: " + event);
            positionTimer.stop();
        }
    }
}




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.