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

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Die SoundChannel-Klasse steuert einen Sound in einer Anwendung. Jeder in einer Adobe® Flash®-Anwendung wiedergegebene Sound ist einem Soundkanal zugewiesen. Die Anwendung kann zudem über mehrere miteinander vermischte Soundkanäle verfügen. Die SoundChannel-Klasse enthält eine stop()-Methode, Eigenschaften zum Überwachen der Amplitude (Lautstärke) eines Kanals und eine Eigenschaft zum Festlegen eines SoundTransform-Objekts für einen Kanal.

Beispiele anzeigen

Siehe auch

Sound
SoundTransform


Öffentliche Eigenschaften
 EigenschaftDefiniert von
 Inheritedconstructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
Object
  leftPeak : Number
[read-only] Die aktuelle Amplitude (Lautstärke) des linken Kanals von 0 (stumm) bis 1 (volle Amplitude).
SoundChannel
  position : Number
[read-only] Wenn das Audio abgespielt wird, zeigt die Eigenschaft "position" den jeweils aktuellen Punkt in der Audiodatei an.
SoundChannel
 Inheritedprototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
Object
  rightPeak : Number
[read-only] Die aktuelle Amplitude (Lautstärke) des rechten Kanals von 0 (stumm) bis 1 (volle Amplitude).
SoundChannel
  soundTransform : 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 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
 Inherited Wird ausgelöst, wenn Flash Player den Betriebssystemfokus verliert und inaktiv wird.EventDispatcher
   Wird ausgelöst, wenn die Wiedergabe eines Sounds beendet ist.SoundChannel
Eigenschaftsdetail
leftPeakEigenschaft
leftPeak:Number  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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


Implementierung
    public function get leftPeak():Number
positionEigenschaft 
position:Number  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Wenn das Audio abgespielt wird, zeigt die Eigenschaft position den jeweils aktuellen Punkt in der Audiodatei an. Wenn das Audio beendet oder angehalten wurde, zeigt die Eigenschaft position die zuletzt abgespielte Stelle in der Audiodatei an.

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


Implementierung
    public function get position():Number
rightPeakEigenschaft 
rightPeak:Number  [read-only]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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


Implementierung
    public function get rightPeak():Number
soundTransformEigenschaft 
soundTransform:SoundTransform  [read-write]

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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():SoundTransform
    public function set soundTransform(value:SoundTransform):void

Siehe auch

Methodendetail
stop()Methode
public function stop():void

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

Beendet die Wiedergabe des im Kanal wiedergegebenen Sounds.


Beispiel

Im folgenden Beispiel kann der Benutzer eine Audiodatei durch das Klicken auf eine Schaltfläche anhalten und fortsetzen.

Im Konstruktor wird die Audiodatei geladen. (Hier wird davon ausgegangen, dass sich die Datei im selben Verzeichnis wie die SWF-Datei befindet). Als Schaltfläche, mit der der Benutzer den Sound abspielen oder anhalten kann, wird ein Textfeld verwendet. Wenn der Benutzer auf das Textfeld button klickt, wird die Methode clickHandler() aufgerufen.

In der Methode clickHandler() wird das Audio auf die Wiedergabe eingestellt und einem Audiokanal zugewiesen, wenn der Benutzer zum ersten Mal auf das Textfeld klickt. Wenn der Benutzer das nächste Mal auf das Textfeld klickt, wird die Audiowiedergabe angehalten. Die Eigenschaft position des Audiokanals zeichnet auf, an welcher Stelle der Sound angehalten wurde und wird verwendet, um die Wiedergabe ab dieser Stelle fortzusetzen, wenn der Benutzer erneut auf das Textfeld klickt. Beachten Sie, dass bei jedem Aufrufen der Methode Sound.play() ein neues SoundChannel-Objekt erstellt und der Variablen channel zugewiesen wird. Das Sound-Objekt muss einem SoundChannel-Objekt zugewiesen werden, um mithilfe der Methode stop() des Audiokanals das Audio 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";
            }
        }
    }
}
Ereignisdetail
soundComplete Ereignis
Ereignisobjekttyp: flash.events.Event
Event.type property = flash.events.Event.SOUND_COMPLETE

Sprachversion : ActionScript 3.0
Player-Version : Flash Player 9

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

Definiert den Wert der Eigenschaft type 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 Sound-Objekt, bei dem die Wiedergabe eines Sounds beendet wird.

Beispiel

Im folgenden Beispiel wählt der Benutzer Titel aus einer Wiedergabeliste aus und klickt dann auf "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 Textformat-Objekt wurde definiert, um das Format der Zeilen zu kursiv zu ändern, nachdem sie ausgewählt wurden. Wenn der Benutzer auf das Textfeld klickt, wird die Methode clickHandler() aufgerufen.

In der Methode clickHandler() gibt der getLineIndexAtPoint() des Textfeld-Objekts den Index der Zeile, auf die der Benutzer geklickt 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 Methode playNext() wird 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 Methode playNext() durchläuft die Arrayliste, um die einzelnen Titel zu laden und abzuspielen. Der Titel wird auch einem Audiokanal zugewiesen. Ein Ereignis-Listener für den Audiokanal wird hinzugefügt, um zu reagieren, wenn ein Titel abgespielt wurde und das Ereignis Event.SOUND_COMPLETE ausgelöst wird. Die Methode soundCompleteHandler() 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);
        }
    }
}
Beispiele Verwendung von Beispielen
SoundChannelExample.as

Im folgenden Beispiel werden eine MP3-Datei geladen, abgespielt und Informationen über Sound-Ereignisse angezeigt, die beim Laden und Abspielen der MP3-Datei auftreten. Ein Timer-Objekt 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();
        }
    }
}




 

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/SoundChannel.html