Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Controllare il volume dell'audio

Panoramica sugli strumenti e i metodi per regolare il volume dell'audio
Panoramica sugli strumenti e i metodi per regolare il volume dell'audio
Link copiato negli appunti

Tramite l'oggetto Sound (Actionscript 2) o SoundTransform (Actionscript 3) è molto semplice controllare il volume del sonoro di un filmato; il concetto è quello di "collegare" l'audio del filmato (ricavandolo dall'oggetto NetStream) a un oggetto Sound o SoundTransform per impostarne il volume.

Regolare il volume dell'audio - Actionscript 2

Come detto Actionscript 2 usa Sound: non ci resta quindi che creare un oggetto di tipo Sound, regolarne il volume (con un valore tra 0 e 100) e collegare all'oggetto il flusso NetStream.

Listato 5.1. Regola il volume di un oggetto Sound

var suono:Sound = new Sound();
suono.setVolume(10);
suono.attachSound(stream_video);

Regolare il volume dell'audio - Actionscript 3

Nel caso di un progetto Actionscript 3 il procedimento varia leggermente: l'oggetto soundTransform che useremo per variare il volume viene creato copiando la proprietà soundTransform del flusso NetStream; il volume dell'oggetto (nell'esempio suono) viene quindi modificato con un valore compreso tra 0 e 1) e come ultima operazione si associa alla proprietà soundTransform dell'oggetto NetStream (nell'esempio stream_video) l'oggetto suono.

Listato 5.2. Regola il volume di un oggetto soundTransform

var suono:SoundTransform = stream_video.soundTransform;
suono.volume = .1;
stream_video.soundTransform = suono;

È necessario eseguire questi passaggi perché la proprietà soundTransform dell'oggetto non è direttamente modificabile, dobbiamo quindi ricavarne una copia, modificarla e poi associarla alla proprietà soundTransform del nostro oggetto NetStream.

Creare uno slider per il controllo dell'audio

Per dare all'utente la possibilità di controllare il volume del filmato è chiaramente consigliabile inserire un controllo manuale, come ad esempio uno slider o un movieclip: utilizzando il codice appena visto è molto semplice creare un controllo personalizzato per il volume.

Sicuramente uno dei vantaggi dell'FLVPlayback (per il quale tratteremo a breve il caricamento di file ad alta definizione) è proprio la presenza di skin e controlli già pronti, tuttavia utilizzando la classe NetStream abbiamo per molti versi una maggiore libertà dato che possiamo creare a piacimento i nostri controlli.

Vediamo allora come creare un semplice cursore per regolare il volume; per prima cosa creiamo un nuovo movieclip e disegniamo al suo interno il cursore e la barra (larga 100 pixel) su cui lo andremo a trascinare; convertiamo il cursore in movieclip e diamogli nome istanza cursore, mentre il movieclip contenente cursore e barra avrà nome istanza slidervolume.

Questa operazione è comune sia che usiamo Actionscript 2 sia che usiamo Actionscript 3, le variazioni si possono riscontrare invece nel codice, come possiamo vedere nei codici seguenti.

Trascinare il cursore e regolare il volume - Actionscript 2

In Actionscript 2 possiamo usare gli eventi onPress, onRelease e onReleaseOutside per avviare e fermare il trascinamento del cursore; notiamo l'uso del comando startDrag con impostati i limiti per il trascinamento rispettivi principalmente al lato sinistro, al lato superiore, al lato destro e al lato inferiore.

Listato 5.3. Regola il volume con il cursore

slidervolume.cursore.onPress = function(){
  startDrag(this,true,0,0,100,0)
}

slidervolume.cursore.onRelease = slidervolume.cursore.onReleaseOutside = function(){
  stopDrag()
  suono.setVolume(slidervolume.cursore._x)
  suono.attachSound(stream_video)
}

Vediamo come appena rilasciato il cursore, l'audio venga immediatamente aggiornato basandosi sulla posizione _x del cursore (i valori per il volume vanno infatti da 0 a 100 e noi abbiamo una barra di 100 pixel per posizionare il cursore).

Trascinare il cursore e regolare il volume - Actionscript 3

Il procedimento in Actionscript 3 è abbastanza diverso: usiamo gli eventi MouseEvent.MOUSE_DOWN (sul cursore) e MouseEvent.MOUSE_UP (sullo stage) per ottenere un comportamento analogo a quanto analizzato in Actionscript 2, inoltre il comando startDrag richiede un oggetto di tipo Rectangle per l'impostazione dei limiti di trascinamento.

Listato 5.4. Regola il volume con il cursore in AS3

function trascina(evt:Event){
  var rettangolo:Rectangle = new Rectangle(0,0,100,0)
  evt.target.startDrag(true,rettangolo)
}
function settaVolume(evt:Event){
  stopDrag()
  var suono:SoundTransform = stream_video.soundTransform;
  suono.volume = slidervolume.cursore.x / 100;
  stream_video.soundTransform = suono;
}
slidervolume.cursore.addEventListener(MouseEvent.MOUSE_DOWN,trascina)
stage.addEventListener(MouseEvent.MOUSE_UP,settaVolume)

Notiamo come in questo caso il valore x recante la posizione del cursore venga diviso per 100, questo perché come abbiamo detto il range di valori per il volume in Actionscript 3 va da 0 a 1.


Ti consigliamo anche