Pacchetto | flash.media |
Classe | public final class SoundMixer |
Ereditarietà | SoundMixer Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
sampleData
).
Proprietà | Definito da | ||
---|---|---|---|
audioPlaybackMode : String [statico]
Specifica la modalità di riproduzione audio di tutti gli oggetti Sound. | SoundMixer | ||
bufferTime : int [statico]
Il numero di secondi per precaricare l'audio in streaming incorporato in un buffer prima dell'avvio dello streaming. | SoundMixer | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
soundTransform : flash.media:SoundTransform [statico]
L'oggetto SoundTransform che controlla le proprietà audio globali. | SoundMixer | ||
useSpeakerphoneForVoice : Boolean [statico]
Attiva e disattiva la funzione vivavoce quando il dispositivo è in modalità voce. | SoundMixer |
Metodo | Definito da | ||
---|---|---|---|
[statico]
Determina se alcuni file audio non sono accessibili a causa delle restrizioni di sicurezza. | SoundMixer | ||
[statico]
Scatta un'istantanea della forma d'onda corrente dell'audio e la inserisce nell'oggetto ByteArray specificato. | SoundMixer | ||
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 | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
[statico]
Interrompe la riproduzione di tutto l'audio. | SoundMixer | ||
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 |
audioPlaybackMode | proprietà |
audioPlaybackMode:String
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 3 |
Specifica la modalità di riproduzione audio di tutti gli oggetti Sound. Nei dispositivi mobili questa proprietà imposta le priorità del suono e il valore predefinito in base alla piattaforma. Negli ambienti desktop e TV, non esiste alcuna differenza funzionale tra le modalità audio e riproduzione.
I valori validi per questa proprietà sono definiti nella classe AudioPlaybackMode.
Nota In iOS, se un’applicazione imposta audioPlaybackMode=AudioPlaybackMode.VOICE
, altre applicazioni non possono cambiarlo in AudioPlaybackMode.MEDIA
.
Limitate il più possibile l’uso della modalità AudioPlaybackMode.VOICE
e provate a passare alla modalità AudioPlaybackMode.MEDIA
non appena potete dopo il termine della chiamata vocale, per consentire ad altre applicazioni di effettuare la riproduzione in modalità multimediale.
Quando modificate la modalità di riproduzione audio in iOS, le applicazioni native che riproducono musica effettuano una breve pausa.
Il valore predefinito è AudioPlaybackMode.MEDIA.
Implementazione
public static function get audioPlaybackMode():String
public static function set audioPlaybackMode(value:String):void
Genera
ArgumentError — kInvalidParameterError
|
Elementi API correlati
bufferTime | proprietà |
bufferTime:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il numero di secondi per precaricare l'audio in streaming incorporato in un buffer prima dell'avvio dello streaming. Per un file SWF di un altro dominio non è possibile accedere ai dati dell'audio caricato (compreso il tempo di bufferizzazione), a meno che non venga implementato un file di criteri validi per domini diversi. Per ulteriori informazioni sulla sicurezza e sull'audio, vedete la descrizione della classe Sound. Per il codice di un file di un altro dominio non è possibile accedere ai dati dell'audio caricato (compreso il tempo di bufferizzazione) a meno che non venga implementato un file di criteri validi per domini diversi. Tuttavia, all'interno della sandbox di un'applicazione AIR, il codice può accedere ai dati dei file audio da qualsiasi origine. Per ulteriori informazioni sulla sicurezza e sull'audio, vedete la descrizione della classe Sound.
La proprietà SoundMixer.bufferTime
incide solo sul tempo di bufferizzazione dell'audio in streaming incorporato in un file SWF ed è indipendente dagli oggetti Sound creati in modo dinamico (ovvero gli oggetti Sound creati in ActionScript). Il valore della proprietà SoundMixer.bufferTime
non può sovrascrivere né impostare il valore predefinito del tempo di bufferizzazione specificato nell'oggetto SoundLoaderContext, che viene passato al metodo Sound.load()
.
Implementazione
public static function get bufferTime():int
public static function set bufferTime(value:int):void
Elementi API correlati
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 che controlla le proprietà audio globali. Gli oggetti SoundTransform comprendono proprietà per impostare il volume, la panoramica e l'assegnazione dell'altoparlante sinistro e destro. L'oggetto SoundTransform utilizzato in questa proprietà fornisce le impostazioni audio definitive che vengono applicate a tutti i suoni dopo l'applicazione delle eventuali impostazioni audio individuali.
Implementazione
public static function get soundTransform():flash.media:SoundTransform
public static function set soundTransform(value:flash.media:SoundTransform):void
Elementi API correlati
useSpeakerphoneForVoice | proprietà |
useSpeakerphoneForVoice:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 3 |
Attiva e disattiva la funzione vivavoce quando il dispositivo è in modalità voce. Per impostazione predefinita, gli smartphone usano l'auricolare per l'uscita audio quando la proprietà SoundMixer.audioPlaybackMode
è impostata su AudioPlaybackMode.VOICE
. La proprietà useSpeakerphoneForVoice
permette di escludere l'output predefinito in modo da implementare un pulsante vivavoce in un'applicazione telefonica. Questa proprietà non ha effetto nelle modalità diverse da AudioPlaybackMode.VOICE
. Negli ambienti desktop e TV, questa proprietà non ha effetto.
Nota In iOS, se l’applicazione ha impostato audioPlaybackMode=VOICE
e un’altra applicazione sta riproducendo in modalità vocale, non potete impostare useSpeakerphoneForVoice=true
.
Nota: in Android è necessario impostare l'elemento android.permission.MODIFY_AUDIO_SETTINGS
nel descrittore dell'applicazione AIR, altrimenti la modifica di questo valore non ha alcun effetto. Inoltre, l'impostazione è quella globale del dispositivo. Le altre applicazioni in esecuzione sul dispositivo possono cambiare l'impostazione del dispositivo sottostante in qualsiasi momento.
Il valore predefinito è false.
Implementazione
public static function get useSpeakerphoneForVoice():Boolean
public static function set useSpeakerphoneForVoice(value:Boolean):void
Elementi API correlati
areSoundsInaccessible | () | metodo |
public static function areSoundsInaccessible():Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Determina se alcuni file audio non sono accessibili a causa delle restrizioni di sicurezza. Ad esempio, l'audio caricato da un dominio diverso da quello del contenuto che chiama questo metodo non è accessibile se il relativo server non dispone di un file di criteri URL che consente di accedere al dominio di tale dominio. L'audio può comunque essere caricato e riprodotto ma le operazioni di livello basso, quale l'acquisizione di metadati ID3 per l'audio, non possono essere eseguite se l'audio non è accessibile.
Per il contenuto di applicazioni AIR nella sandbox di sicurezza dell'applicazione, la chiamata a questo metodo restituisce sempre il valore false
. Tutto l'audio, incluso quello caricato da altri domini, è accessibile al contenuto che si trova nella sandbox di sicurezza dell'applicazione.
Boolean — La rappresentazione sotto forma di stringa del valore booleano.
|
Elementi API correlati
computeSpectrum | () | metodo |
public static function computeSpectrum(outputArray:ByteArray, FFTMode:Boolean = false, stretchFactor:int = 0):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Scatta un'istantanea della forma d'onda corrente dell'audio e la inserisce nell'oggetto ByteArray specificato. I valori sono formattati come valori normalizzati a virgola mobile nell'intervallo compreso tra -1,0 e 1,0. L'oggetto ByteArray passato al parametro outputArray
viene sovrascritto con i nuovi valori. Le dimensioni dell'oggetto ByteArray creato sono fissate in 512 valori a virgola mobile, di cui i primi 256 valori rappresentano il canale sinistro e gli altri 256 valori il canale destro.
Nota: questo metodo è soggetto a restrizioni di sicurezza per i file locali e a restrizioni per il caricamento di dati tra domini diversi. Se lavorate con file locali o con suoni caricati da un server appartenente a un dominio diverso da quello del contenuto chiamante, può essere necessario superare le restrizioni imposte dalla sandbox mediante un file di criteri validi per domini diversi. Per ulteriori informazioni, vedete la descrizione della classe Sound. Inoltre, questo metodo non può essere utilizzato per estrarre dati da flussi RTMP, anche se viene chiamato da contenuto residente nello stesso dominio del server RTMP.
questo metodo è supportato tramite RTMP in Flash Player 9.0.115.0 e versioni successive e in Adobe AIR. Potete controllare l'accesso agli streaming su Flash Media Server in uno script lato server. Per ulteriori informazioni vedete le proprietà Client.audioSampleAccess
e Client.videoSampleAccess
nel manuale Server-Side ActionScript Language Reference for Adobe Flash Media Server.
Parametri
outputArray:ByteArray — Un oggetto ByteArray contenente i valori associati all'audio. Se alcuni suoni non sono disponibili a causa delle restrizioni di sicurezza (areSoundsInaccessible == true ), l'oggetto outputArray resta invariato. Se tutti i suoni vengono interrotti, nell'oggetto outputArray vengono inseriti degli zeri.
| |
FFTMode:Boolean (default = false ) — Un valore booleano che indica se sui dati audio viene prima eseguita una trasformazione di Fourier. Se questo parametro viene impostato su true , il metodo restituisce uno spettro di frequenze anziché la forma d'onda priva di compressione. All'interno dello spettro, le basse frequenze vengono rappresentate a sinistra e le alte frequenze a destra.
| |
stretchFactor:int (default = 0 ) — La risoluzione del campionamento audio. Se il valore stretchFactor è impostato su 0, i dati vengono campionati a 44,1 KHz; con un valore 1 i dati vengono campionati a 22,05 KHz, con un valore 2 a 11,025 KHz e così via.
|
Elementi API correlati
flash.utils.ByteArray
flash.media.Sound
flash.media.SoundLoaderContext.checkPolicyFile
Esempio ( Come utilizzare questo esempio )
computeSpectrum()
viene utilizzato per generare una rappresentazione grafica dei dati dell'onda audio.
Nella funzione di costruzione, un file audio viene caricato e impostato per la riproduzione. In questo esempio non è disponibile la gestione degli errori e si presume che il file audio si trovi nella stessa directory del file SWF. L'esempio rileva l'evento Event.ENTER_FRAME
durante la riproduzione audio, attivando ripetutamente il metodo onEnterFrame()
per disegnare un grafico dei valori del suono. Al termine della riproduzione audio, il metodo onPlaybackComplete()
interrompe il processo di disegno rimuovendo il listener per l'evento Event.ENTER_FRAME
.
Nel metodo onEnterFrame()
, il metodo computeSpectrum()
memorizza il suono non compresso nell'oggetto array di byte bytes
. I dati vengono campionati a 44,1 KHz. L'array di byte contiene 512 byte di dati, ognuno dei quali contiene un valore a virgola mobile compreso tra -1 e 1. I primi 256 valori rappresentano il canale sinistro e i secondi 256 valori rappresentano il canale destro. Il primo ciclo for legge i primi 256 valori (il canale stereo sinistro) e disegna una linea da ogni punto a quello successivo utilizzando il metodo Graphics.lineTo()
. La visualizzazione grafica vettoriale dell'onda audio viene scritta direttamente nell'oggetto Sprite della classe. I byte audio vengono letti come numero a virgola mobile a 32 bit dallo streaming di byte e vengono moltiplicati per l'altezza del tratto per consentire la definizione dell'intervallo verticale del grafico. La larghezza corrisponde al doppio della larghezza della lunghezza del canale. Il secondo ciclo for legge l'insieme successivo di 256 valori (il canale stereo destro) e traccia le linee in ordine inverso. I metodi g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
e g.lineTo(0, PLOT_HEIGHT);
disegnano la linea di base per le onde. Il grafico costituito da onde che ne deriva crea un effetto "specchio".
package { import flash.display.Sprite; import flash.display.Graphics; import flash.events.Event; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundMixer; import flash.net.URLRequest; import flash.utils.ByteArray; import flash.text.TextField; public class SoundMixer_computeSpectrumExample extends Sprite { public function SoundMixer_computeSpectrumExample() { var snd:Sound = new Sound(); var req:URLRequest = new URLRequest("Song1.mp3"); snd.load(req); var channel:SoundChannel; channel = snd.play(); addEventListener(Event.ENTER_FRAME, onEnterFrame); channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete); } private function onEnterFrame(event:Event):void { var bytes:ByteArray = new ByteArray(); const PLOT_HEIGHT:int = 200; const CHANNEL_LENGTH:int = 256; SoundMixer.computeSpectrum(bytes, false, 0); var g:Graphics = this.graphics; g.clear(); g.lineStyle(0, 0x6600CC); g.beginFill(0x6600CC); g.moveTo(0, PLOT_HEIGHT); var n:Number = 0; for (var i:int = 0; i < CHANNEL_LENGTH; i++) { n = (bytes.readFloat() * PLOT_HEIGHT); g.lineTo(i * 2, PLOT_HEIGHT - n); } g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT); g.endFill(); g.lineStyle(0, 0xCC0066); g.beginFill(0xCC0066, 0.5); g.moveTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT); for (i = CHANNEL_LENGTH; i > 0; i--) { n = (bytes.readFloat() * PLOT_HEIGHT); g.lineTo(i * 2, PLOT_HEIGHT - n); } g.lineTo(0, PLOT_HEIGHT); g.endFill(); } private function onPlaybackComplete(event:Event):void { removeEventListener(Event.ENTER_FRAME, onEnterFrame); } } }
stopAll | () | metodo |
public static function stopAll():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Interrompe la riproduzione di tutto l'audio.
>In Flash Professional, questo metodo non arresta l'indicatore di riproduzione. La riproduzione dei suoni impostati per la ripetizione riprende quando l'indicatore di riproduzione arriva nei fotogrammi in cui si trovano tali suoni.
Quando utilizzate questa proprietà, tenete presente il seguente modello di sicurezza:
- Per impostazione predefinita, quando chiamate il metodo
SoundMixer.stopAll()
vengono interrotti solo i suoni compresi nella stessa funzione di sicurezza sandbox dell'oggetto che chiama il metodo. Tutti i suoni la cui riproduzione non è stata avviata dalla stessa sandbox dell'oggetto chiamante non vengono interrotti. - Quando caricate l'audio utilizzando il metodo
load()
della classe Sound è possibile specificare un parametrocontext
, cioè un oggetto SoundLoaderContext. Se la proprietàcheckPolicyFile
dell'oggetto SoundLoaderContext viene impostata sutrue
, Flash Player o Adobe AIR verifica la presenza di un file di criteri validi per domini diversi sul server da cui viene caricato l'audio. Se il file è presente sul server e consente l'interazione con il dominio del contenuto che effettua la chiamata, il file può interrompere l'audio caricato utilizzando il metodoSoundMixer.stopAll()
; in caso contrario, non può eseguire questa operazione.
Tuttavia, in Adobe AIR, il contenuto della funzione di sicurezza sandbox dell'applicazione
(contenuto installato con l'applicazione AIR) non è interessato da queste limitazioni di sicurezza.
Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .
Esempio ( Come utilizzare questo esempio )
stopAll()
viene utilizzato per disattivare due suoni riprodotti contemporaneamente.
Nella funzione di costruzione, due diversi file audio vengono caricati e impostati per la riproduzione. Il primo suono viene caricato in locale e assegnato a un canale audio. Si presume che il file si trovi nella stessa directory del file SWF. Il secondo file viene caricato ed eseguito in streaming dal sito di Adobe. Per utilizzare il metodo SoundMixer.stopAll()
, tutto l'audio deve essere accessibile. È possibile utilizzare un oggetto SoundLoaderContext per la verifica del file di criteri dei domini. Ogni suono ha un listener di eventi che viene chiamato se si verifica un errore IO durante il caricamento del file audio. Viene creato anche un campo di testo muteButton
. Rileva un evento click, che richiama il metodo muteButtonClickHandler()
.
Nel metodo muteButtonClickHandler()
, se il contenuto del campo di testo è "MUTE," il metodo areSoundsInaccessible()
verifica se il mixer audio ha accesso ai file. Se i file sono accessibili, il metodo stopAll()
interrompe la riproduzione audio. Selezionando nuovamente il campo di testo, ha inizio la riproduzione del primo suono e il contenuto del campo di testo torna nuovamente ad essere "MUTE". Questa volta, il metodo stopAll()
disattiva la riproduzione del primo suono. Il metodo stop()
del canale audio può essere utilizzato anche per interrompere un suono specifico assegnato al canale. Per utilizzare il canale in modo funzionale, l'audio deve essere riassegnato al canale ogni volta che il metodo play()
viene richiamato.
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.media.SoundChannel; import flash.media.SoundMixer; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; import flash.events.IOErrorEvent; public class SoundMixer_stopAllExample extends Sprite { private var firstSound:Sound = new Sound(); private var secondSound:Sound = new Sound(); private var muteButton:TextField = new TextField(); private var channel1:SoundChannel = new SoundChannel(); public function SoundMixer_stopAllExample() { firstSound.load(new URLRequest("mySound.mp3")); secondSound.load(new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3")); firstSound.addEventListener(IOErrorEvent.IO_ERROR, firstSoundErrorHandler); secondSound.addEventListener(IOErrorEvent.IO_ERROR, secondSoundErrorHandler); channel1 = firstSound.play(); secondSound.play(); muteButton.autoSize = TextFieldAutoSize.LEFT; muteButton.border = true; muteButton.background = true; muteButton.text = "MUTE"; muteButton.addEventListener(MouseEvent.CLICK, muteButtonClickHandler); this.addChild(muteButton); } private function muteButtonClickHandler(event:MouseEvent):void { if(muteButton.text == "MUTE") { if(SoundMixer.areSoundsInaccessible() == false) { SoundMixer.stopAll(); muteButton.text = "click to play only one of sound."; } else { muteButton.text = "The sounds are not accessible."; } } else { firstSound.play(); muteButton.text = "MUTE"; } } private function firstSoundErrorHandler(errorEvent:IOErrorEvent):void { trace(errorEvent.text); } private function secondSoundErrorHandler(errorEvent:IOErrorEvent):void { trace(errorEvent.text); } } }
Tue Jun 12 2018, 02:44 PM Z