Pacchettoflash.media
Classepublic final class SoundChannel
EreditarietàSoundChannel Inheritance EventDispatcher Inheritance Object

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

La classe SoundChannel controlla i suoni in un'applicazione. Tutti i suoni riprodotti in un'applicazione Adobe® Flash® vengono assegnati a un canale audio e l'applicazione può avere più canali audio combinati tra loro. La classe SoundChannel contiene un metodo stop(), proprietà per il controllo dell'ampiezza (volume) del canale e una proprietà per impostare un oggetto SoundTransform sul canale.

Vedere gli esempi

Vedere anche

Sound
SoundTransform


Proprietà pubbliche
 ProprietàDefinito da
 Inheritedconstructor: Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto.
Object
  leftPeak: Number
[sola lettura] L'ampiezza (volume) corrente del canale sinistro, compresa tra 0 (silenzioso) e 1 (ampiezza massima).
SoundChannel
  position: Number
[sola lettura] Quando la riproduzione è in corso, la proprietà della posizione indica il punto esatto del file audio che viene riprodotto.
SoundChannel
 Inheritedprototype: Object
[statico] Un riferimento all'oggetto prototipo di un oggetto classe o funzione.
Object
  rightPeak: Number
[sola lettura] L'ampiezza (volume) corrente del canale destro, compresa tra 0 (silenzioso) e 1 (ampiezza massima).
SoundChannel
  soundTransform: SoundTransform
L'oggetto SoundTransform assegnato al canale audio.
SoundChannel
Metodi pubblici
 MetodoDefinito da
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registra un oggetto listener di eventi con un oggetto EventDispatcher, in modo che il listener riceva la notifica di un evento.
EventDispatcher
 Inherited
Invia un evento nel flusso di eventi.
EventDispatcher
 Inherited
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento.
EventDispatcher
 Inherited
Indica se per un oggetto è definita una proprietà specifica.
Object
 Inherited
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro.
Object
 Inherited
Indica se la proprietà specificata esiste ed è enumerabile.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Rimuove un listener dall'oggetto EventDispatcher.
EventDispatcher
 Inherited
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche.
Object
  
Interrompe la riproduzione del suono nel canale.
SoundChannel
 Inherited
Restituisce la rappresentazione in formato stringa dell'oggetto specificato.
Object
 Inherited
Restituisce il valore di base dell'oggetto specificato.
Object
 Inherited
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato.
EventDispatcher
Eventi
 Evento Riepilogo Definito da
 Inherited Inviato quando Flash Player riceve lo stato di attivazione del sistema operativo e diventa attivo.EventDispatcher
 Inherited Inviato quando Flash Player perde lo stato di attivazione del sistema operativo e sta per diventare inattivo.EventDispatcher
   Inviato quando la riproduzione di un suono รจ terminata.SoundChannel
Descrizione delle proprietà
leftPeakproprietà
leftPeak:Number  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

L'ampiezza (volume) corrente del canale sinistro, compresa tra 0 (silenzioso) e 1 (ampiezza massima).


Implementazione
    public function get leftPeak():Number
positionproprietà 
position:Number  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Quando la riproduzione è in corso, la proprietà position indica il punto esatto del file audio che viene riprodotto. Quando la riproduzione viene interrotta o sospesa, la proprietà position indica l'ultimo punto riprodotto del file audio.

È prassi comune salvare il valore della proprietà position quando l'audio viene interrotto. È possibile riprendere la riproduzione in un secondo momento partendo esattamente dalla posizione salvata.


Implementazione
    public function get position():Number
rightPeakproprietà 
rightPeak:Number  [sola lettura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

L'ampiezza (volume) corrente del canale destro, compresa tra 0 (silenzioso) e 1 (ampiezza massima).


Implementazione
    public function get rightPeak():Number
soundTransformproprietà 
soundTransform:SoundTransform  [lettura-scrittura]

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

L'oggetto SoundTransform assegnato al canale audio. Gli oggetti SoundTransform comprendono proprietà per impostare il volume, la panoramica e l'assegnazione dell'altoparlante sinistro e destro.


Implementazione
    public function get soundTransform():SoundTransform
    public function set soundTransform(value:SoundTransform):void

Vedere anche

Descrizione dei metodi
stop()metodo
public function stop():void

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Interrompe la riproduzione del suono nel canale.


Esempio

Nell'esempio seguente, l'utente può utilizzare un pulsante per sospendere e riprodurre un file audio.

Nella funzione di costruzione, viene caricato il file audio. (Si presume che il file si trovi nella stessa directory del file SWF.) Un campo di testo viene utilizzato come pulsante per consentire all'utente di riprodurre o sospendere l'audio. Quando l'utente fa clic sul campo di testo button, viene richiamato il metodo clickHandler().

Nel metodo clickHandler(), la prima volta che l'utente fa clic sul campo di testo, l'audio viene riprodotto e assegnato a un canale audio. Successivamente, quando l'utente fa clic sul campo di testo da sospendere, la riproduzione audio viene interrotta. La proprietà position del canale audio registra la posizione del suono nel momento dell'interruzione e viene utilizzata per riprendere la riproduzione esattamente in quel punto quando l'utente fa clic sul campo di testo per riavviare la riproduzione. Ogni volta che viene chiamato il metodo Sound.play(), viene creato un nuovo oggetto SoundChannel, che viene assegnato alla variabile channel. Per poter utilizzare il metodo stop() del canale audio per sospendere la riproduzione, l'oggetto Sound deve essere assegnato a un oggetto SoundChannel.


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";
            }
        }
    }
}
Descrizione degli eventi
soundComplete Evento
Tipo di oggetto evento: flash.events.Event
Event.type property = flash.events.Event.SOUND_COMPLETE

Versione linguaggio: ActionScript 3.0
Versione lettore: Flash Player 9

Inviato quando la riproduzione di un suono è terminata.

Definisce il valore della proprietà type di un oggetto evento soundComplete.

Questo evento ha le seguenti proprietà:

ProprietàValore
bubblesfalse
cancelablefalse; non è presente alcun comportamento predefinito da annullare.
currentTargetL'oggetto che elabora attivamente l'oggetto Event con un listener di eventi.
targetL'oggetto Sound su cui è terminata la riproduzione di un suono.

Esempio

Nell'esempio seguente, l'utente seleziona brani da un sequenza e fa clic su Riproduci per riprodurre i brani nell'ordine selezionato.

Nella funzione di costruzione, viene definito un campo di testo che contiene l'elenco dei brani e una riga per la selezione del brano da riprodurre. (In genere, i pulsanti vengono utilizzati per la riproduzione e le caselle di riepilogo per l'elenco dei brani.) È stato definito un oggetto formato di testo per modificare il formato delle righe dei brani in corsivo dopo la selezione. Quando l'utente fa clic sul campo di testo, viene richiamato il metodo clickHandler().

Nel metodo clickHandler(), il getLineIndexAtPoint() dell'oggetto campo di testo restituisce l'indice della riga su cui l'utente ha fatto clic. Utilizzando l'indice della riga, il metodo getLineText() ottiene il contenuto del testo. L'istruzione if verifica se l'utente ha selezionato la riproduzione o l'aggiunta di un brano alla sequenza dei brani. Se un utente ha selezionato la riproduzione e un brano, il listener di eventi per i clic del mouse viene rimosso e il metodo playNext() viene chiamato per iniziare la riproduzione dei brani. Se l'utente ha selezionato il titolo di un brano, il contenuto della riga viene aggiunto all'array songList e il formato della riga diventa corsivo.

Il metodo playNext() esegue un'iterazione nell'elenco array per caricare e riprodurre ogni brano. Il brano viene assegnato anche a un canale audio. Un listener di eventi per il canale audio viene aggiunto per rispondere quando la riproduzione del brano finisce e l'evento Event.SOUND_COMPLETE viene inviato. Il metodo soundCompleteHandler() richiama quindi il metodo playNext() per riprodurre il brano successivo. Questo processo continua finché non termina la riproduzione di tutti i brani elencati nell'array.

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);
        }
    }
}
Esempi Come utilizzare gli esempi
SoundChannelExample.as

Nell'esempio seguente viene caricato e riprodotto un file MP3, quindi vengono visualizzate informazioni sugli eventi relativi all'audio che si verificano quando di carica e si riproduce un file MP3. Un oggetto Timer fornisce informazioni aggiornate sulla posizione dell'indicatore di riproduzione ogni 50 millisecondi. Per provare l'esempio, collocare un file di nome MySound.mp3 nella stessa directory del file SWF.
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();
        }
    }
}




 

Inviami un messaggio e-mail quando vengono aggiunti dei commenti a questa | Rapporto sui commenti

Pagina corrente: http://livedocs.adobe.com/flash/9.0_it/ActionScriptLangRefV3/flash/media/SoundChannel.html