Pacchetto | flash.media |
Classe | public final class SoundChannel |
Ereditarietà | SoundChannel EventDispatcher Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
stop()
, proprietà per il controllo dell'ampiezza (volume) del canale e una proprietà per assegnare un oggetto SoundTransform al canale.
Altri esempi
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
constructor : 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à position indica il punto esatto (in millisecondi) in fase di riproduzione nel file audio. | SoundChannel | ||
rightPeak : Number [sola lettura]
L'ampiezza (volume) corrente del canale destro, compresa tra 0 (silenzioso) e 1 (ampiezza massima). | SoundChannel | ||
soundTransform : flash.media:SoundTransform
L'oggetto SoundTransform assegnato al canale audio. | SoundChannel |
Metodo | Definito da | ||
---|---|---|---|
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 | ||
Invia un evento nel flusso di eventi. | EventDispatcher | ||
Verifica se per l'oggetto EventDispatcher sono presenti listener registrati per un tipo specifico di evento. | EventDispatcher | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Rimuove un listener dall'oggetto EventDispatcher. | EventDispatcher | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Interrompe la riproduzione del suono nel canale. | SoundChannel | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
Restituisce il valore di base dell'oggetto specificato. | Object | ||
Verifica se un listener di eventi è registrato con questo oggetto EventDispatcher o qualsiasi suo antenato per il tipo di evento specificato. | EventDispatcher |
Evento | Riepilogo | Definito da | ||
---|---|---|---|---|
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR ottiene lo stato di attivazione del sistema operativo ed entra nello stato attivo. | EventDispatcher | |||
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR perde l'attivazione del sistema operativo e sta entrando nello stato inattivo. | EventDispatcher | |||
Inviato quando la riproduzione di un suono è terminata. | SoundChannel |
leftPeak | proprietà |
position | proprietà |
position:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Quando la riproduzione è in corso, la proprietà position
indica il punto esatto (in millisecondi) in fase di riproduzione nel file audio. 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.
Se il suono è riprodotto ciclicamente, position
viene reimpostata su 0 all'inizio di ogni ciclo.
Implementazione
public function get position():Number
rightPeak | proprietà |
soundTransform | proprietà |
soundTransform:flash.media:SoundTransform
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
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():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Elementi API correlati
stop | () | metodo |
public function stop():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Interrompe la riproduzione del suono nel canale.
Esempio ( Come utilizzare questo esempio )
Nella funzione di costruzione, viene caricato il file audio. L'esempio 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 seleziona il campo di testo button
, viene richiamato il metodo clickHandler()
.
Nel metodo clickHandler()
, la prima volta che l'utente seleziona il campo di testo, l'audio viene riprodotto e assegnato a un canale audio. Successivamente, quando l'utente seleziona il campo di testo da sospendere, la riproduzione audio viene interrotta. La proprietà position
del canale audio registra la posizione dell'audio nel momento in cui viene interrotto. Questa proprietà viene utilizzata per riprendere la riproduzione dell'audio a partire da tale posizione, dopo che l'utente ha selezionato il campo di testo. 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"; } } } }
soundComplete | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.SOUND_COMPLETE
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato quando la riproduzione di un suono è terminata.
La costanteEvent.SOUND_COMPLETE
definisce il valore della proprietà type
di un oggetto evento soundComplete
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto SoundChannel in cui è terminata la riproduzione di un suono. |
Esempio ( Come utilizzare questo esempio )
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. Viene definito un oggetto text format che modifica il formato delle righe dei brani in corsivo dopo che sono state selezionate. Quando l'utente seleziona il campo di testo, viene richiamato il metodo clickHandler()
.
Nel metodo clickHandler()
, il metodo getLineIndexAtPoint()
dell'oggetto campo di testo restituisce l'indice della riga selezionata dell'utente. 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 viene chiamato il metodo playNext()
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); } } }
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(); } } }
Tue Jun 12 2018, 02:44 PM Z