Pacchetto | flash.media |
Classe | public final class Microphone |
Ereditarietà | Microphone EventDispatcher Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Per ottenere l'accesso al microfono del dispositivo, potete utilizzare il metodo Microphone.getMicrophone()
. Tuttavia, questo metodo restituisce un microfono semplice, che non è in grado di eliminare l'eco acustica. Per eliminare l'eco acustica, è necessario ottenere un'istanza del microfono mediante il metodo Microphone.getEnhancedMicrophone()
. Questo metodo restituisce un microfono del dispositivo con la funzione di soppressione dell'eco acustica abilitata per i dispositivi mobili. Utilizzate la soppressione dell'eco acustica per creare applicazioni audio/video in tempo reale che non necessitano di cuffie.
Creare un'applicazione chat in tempo reale
Per creare un'applicazione chat in tempo reale, catturate l'audio e inviatelo a Flash Media Server. Utilizzate le classi NetConnection e NetStream per inviare il flusso audio a Flash Media Server. Flash Media Server permette di rilanciare l'audio verso altri client. Per creare un'applicazione chat che non necessita di cuffie, utilizzate la soppressione dell'eco acustica. La soppressione dell'eco acustica impedisce la formazione del loop di feedback (retroazione) che si verifica quando l'audio entra in un microfono, viaggia attraverso i diffusori e quindi rientra nel microfono. Per utilizzare la soppressione dell'eco acustica, chiamate il metodo Microphone.getEnhancedMicrophone()
per ottenere un riferimento a un'istanza Microphone. Impostate Microphone.enhancedOptions
su un'istanza della classe MicrophoneEnhancedOptions
per configurare le impostazioni.
Riprodurre l'audio del microfono localmente
Chiamate il metodo setLoopback()
del microfono per indirizzare l'audio del microfono direttamente al computer locale o all'uscita audio del dispositivo. Un feedback audio incontrollato è un rischio intrinseco che si può presentare facilmente quando l'uscita dell'audio può essere raccolta dall'ingresso del microfono. Il metodo setUseEchoSuppression()
permette di ridurre ma non di eliminare il rischio di amplificazione del feedback.
Catturare l'audio del microfono per la registrazione o elaborazione locale
Per catturare l'audio del microfono, intercettate gli eventi sampleData
inviati da un'istanza Microphone. L'oggetto SampleDataEvent inviato per questo evento contiene i dati audio.
Per informazioni sull'acquisizione audio, vedete la classe Microphone.
Supporto del microfono in runtime
La classe Microphone non è supportata in Flash Player quando è eseguito in un browser per dispositivi mobili.
Supporto profili AIR: la classe Microphone è supportata sui sistemi operativi desktop e su dispositivi mobiliviOS e Android. Inoltre, non è supportato nei dispositivi AIR per TV. Per ulteriori informazioni sul supporto delle API tra più profili, vedete Supporto dei profili AIR.
È possibile verificare se la funzionalità è supportata in fase runtime utilizzando la proprietà Microphone.isSupported
. Nota: nei dispositivi AIR per TV, Microphone.isSupported
è true
ma Microphone.getMicrophone()
restituisce sempre null
.
Controlli relativi alla privacy
Flash Player visualizza una finestra di dialogo relativa alla privacy che consente all'utente di scegliere se consentire o negare l'accesso al microfono. La finestra dell'applicazione deve essere almeno di 215 x 138 pixel, le dimensioni minime richieste per visualizzare la finestra di dialogo, altrimenti l'accesso viene negato automaticamente.
Il contenuto eseguito nella sandbox dell'applicazione AIR non necessita di autorizzazione per accedere al microfono e non viene visualizzata alcuna finestra di dialogo. Il contenuto AIR eseguito al di fuori della sandbox dell'applicazione necessita invece di autorizzazione e viene visualizzata la finestra di dialogo Privacy.
Altri esempi
Altre informazioni
Nozioni fondamentali sull'architettura audio
aYo Binitie: Implementazione della soppressione dell'eco acustica nelle applicazioni Flash/Flex
Cristophe Coenraets: Note vocali per Android
Michael Chaize: AIR, Android e il microfono
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
activityLevel : Number [sola lettura]
La quantità di suono rilevata dal microfono. | Microphone | ||
codec : String
Il codec da utilizzare per la compressione audio. | Microphone | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
enableVAD : Boolean
Attiva il rilevamento dell'attività vocale Speex. | Microphone | ||
encodeQuality : int
La qualità della voce codificata quando si utilizza il codec Speex. | Microphone | ||
enhancedOptions : MicrophoneEnhancedOptions
Controlla le opzioni di microfono ottimizzato. | Microphone | ||
framesPerPacket : int
Numero di fotogrammi audio Speex trasmessi in un pacchetto (messaggio). | Microphone | ||
gain : Number
L'entità del potenziamento del segnale eseguito dal microfono. | Microphone | ||
index : int [sola lettura]
L'indice del microfono, rispecchiato nell'array restituito da Microphone.names. | Microphone | ||
isSupported : Boolean [statico] [sola lettura]
La proprietà isSupported è impostata su true se la classe Microphone è supportata nella piattaforma corrente, altrimenti è impostata su false. | Microphone | ||
muted : Boolean [sola lettura]
Specifica se l'utente ha negato (true) o consentito (false) l'accesso al microfono. | Microphone | ||
name : String [sola lettura]
Il nome del dispositivo di cattura audio corrente, restituito dall'hardware di cattura audio. | Microphone | ||
names : Array [statico] [sola lettura]
Serie di stringhe contenente i nomi di tutti i dispositivi di cattura audio disponibili. | Microphone | ||
noiseSuppressionLevel : int
Attenuazione massima del rumore in dB (numero negativo) utilizzata per l'encoder Speex. | Microphone | ||
permissionStatus : String [statico] [sola lettura]
Consente di determinare se l’applicazione ha ottenuto l’autorizzazione per l’uso del microfono. | Microphone | ||
rate : int
Frequenza con cui il microfono cattura l’audio, espressa in kHz. | Microphone | ||
silenceLevel : Number [sola lettura]
La quantità di suono necessaria per attivare il microfono e inviare l'evento activity. | Microphone | ||
silenceTimeout : int [sola lettura]
Il numero di millisecondi che trascorrono tra il momento in cui il microfono interrompe il rilevamento del suono e quello in cui viene inviato l'evento activity. | Microphone | ||
soundTransform : flash.media:SoundTransform
Controlla l'audio dell'oggetto Microphone quando questo è in modalità loopback. | Microphone | ||
useEchoSuppression : Boolean [sola lettura]
Restituisce true se la soppressione dell'eco è attivata; false in caso contrario. | Microphone |
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 | ||
[statico]
Restituisce un riferimento a un oggetto Microphone avanzato che è in grado di eseguire la soppressione dell'eco acustica. | Microphone | ||
[statico]
Restituisce un riferimento a un oggetto Microphone per la cattura dell’audio. | Microphone | ||
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 | ||
Richiede l’autorizzazione per l’uso del microfono da parte dell’applicazione. | Microphone | ||
Invia l’audio catturato da un microfono agli altoparlanti locali. | Microphone | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Imposta il livello di input minimo che deve essere considerato suono e (facoltativamente) l'intervallo di silenzio che indica l'inizio del silenzio vero e proprio. | Microphone | ||
Specifica se utilizzare la funzione di soppressione dell'eco del codec audio. | Microphone | ||
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 |
activityLevel | proprietà |
activityLevel:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
La quantità di suono rilevata dal microfono. I valori accettabili sono compresi tra 0 (non viene rilevato alcun suono) e 100 (viene rilevato un suono molto forte). Il valore di questa proprietà può contribuire a determinare un valore appropriato per il metodo Microphone.setSilenceLevel()
.
Se la proprietà muted
del microfono è true
, il valore di questa proprietà è sempre -1.
Implementazione
public function get activityLevel():Number
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
codec | proprietà |
codec:String
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Il codec da utilizzare per la compressione audio. I codec disponibili sono Nellymoser (predefinito) e Speex. La classe di enumerazione SoundCodec
contiene i diversi valori validi per la proprietà codec
.
Se usate il codec Nellymoser, potete impostare la frequenza di campionamento utilizzando Microphone.rate()
. Se usate il codec Speex, la frequenza di campionamento è impostata a 16 kHz.
Speex include il rilevamento dell'attività vocale (VAD) e riduce automaticamente la larghezza di banda quando non viene rilevata alcuna voce. Se usate il codec Speex, Adobe consiglia di impostare il livello di silenzio su 0. Per impostare il livello di silenzio, utilizzate il metodo Microphone.setSilenceLevel()
.
Implementazione
public function get codec():String
public function set codec(value:String):void
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
enableVAD | proprietà |
enableVAD:Boolean
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Attiva il rilevamento dell'attività vocale Speex.
Implementazione
public function get enableVAD():Boolean
public function set enableVAD(value:Boolean):void
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
encodeQuality | proprietà |
encodeQuality:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
La qualità della voce codificata quando si utilizza il codec Speex. I valori possibili sono quelli compresi tra 0 e 10. Il valore predefinito è 6. I numeri più elevati rappresentano una migliore qualità, ma richiedono maggiore larghezza di banda, come illustrato nella seguente tabella. I valori relativi alla velocità di trasmissione elencati rappresentano la pura velocità e non includono il carico relativo alla pacchettizzazione.
Valore di qualità | Velocità di trasferimento richiesta (kilobit al secondo) |
---|---|
0 | 3.95 |
1 | 5.75 |
2 | 7.75 |
3 | 9.80 |
4 | 12.8 |
5 | 16.8 |
6 | 20.6 |
7 | 23.8 |
8 | 27.8 |
9 | 34.2 |
10 | 42.2 |
Implementazione
public function get encodeQuality():int
public function set encodeQuality(value:int):void
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
enhancedOptions | proprietà |
enhancedOptions:MicrophoneEnhancedOptions
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.3, AIR 2.7 |
Controlla le opzioni di microfono ottimizzato. Per ulteriori informazioni, vedete la classe MicrophoneEnhancedOptions
. Questa proprietà viene ignorata per le istanze Microphone non di tipo avanzato.
Implementazione
public function get enhancedOptions():MicrophoneEnhancedOptions
public function set enhancedOptions(value:MicrophoneEnhancedOptions):void
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
framesPerPacket | proprietà |
framesPerPacket:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Numero di fotogrammi audio Speex trasmessi in un pacchetto (messaggio). Ogni frame è lungo 20 ms. Il valore predefinito è due frame per pacchetto.
Più fotogrammi Speex sono presenti in un messaggio, meno larghezza di banda è necessaria, anche se aumenta il ritardo nell'invio del messaggio. Meno fotogrammi Speex comportano un aumento della larghezza di banda necessaria, ma riducono il ritardo.
Implementazione
public function get framesPerPacket():int
public function set framesPerPacket(value:int):void
gain | proprietà |
gain:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
L'entità del potenziamento del segnale eseguito dal microfono. I valori validi sono compresi tra 0 e 100. Il valore predefinito è 50.
Implementazione
public function get gain():Number
public function set gain(value:Number):void
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
index | proprietà |
index:int
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
L'indice del microfono, rispecchiato nell'array restituito da Microphone.names
.
Implementazione
public function get index():int
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
isSupported | proprietà |
isSupported:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
La proprietà isSupported
è impostata su true
se la classe Microphone è supportata nella piattaforma corrente, altrimenti è impostata su false
.
Implementazione
public static function get isSupported():Boolean
muted | proprietà |
muted:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Specifica se l'utente ha negato (true
) o consentito (false
) l'accesso al microfono. Quando questo valore cambia viene inviato un evento status
. Per ulteriori informazioni, vedete Microphone.getMicrophone()
.
Implementazione
public function get muted():Boolean
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
name | proprietà |
names | proprietà |
names:Array
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Serie di stringhe contenente i nomi di tutti i dispositivi di cattura audio disponibili. I nomi vengono restituiti senza che sia necessario visualizzare il pannello delle impostazioni della privacy di Flash Player. Questo array fornisce l'indice a base zero di ogni dispositivo di cattura audio e il numero dei dispositivi di questo tipo presenti nel sistema tramite la proprietà Microphone.names.length
. Per ulteriori informazioni, vedete la voce relativa alla classe Array.
Una chiamata alla proprietà Microphone.names
richiede un esame esteso dell'hardware e la creazione dell'array può richiedere diversi secondi. Nella maggior parte dei casi è possibile utilizzare semplicemente il microfono predefinito.
Nota: per determinare il nome del microfono corrente, utilizzate la proprietà name
.
Implementazione
public static function get names():Array
Elementi API correlati
noiseSuppressionLevel | proprietà |
noiseSuppressionLevel:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Attenuazione massima del rumore in dB (numero negativo) utilizzata per l'encoder Speex. Se attivata, la soppressione del rumore viene applicata all'audio acquisito da Microphone prima della compressione Speex. Impostate questo valore su 0 per disattivare la soppressione del rumore. La soppressione del rumore è attivata per impostazione predefinita con un'attenuazione massima di -30 dB. Ignorata quando è selezionato il codec Nellymoser.
Implementazione
public function get noiseSuppressionLevel():int
public function set noiseSuppressionLevel(value:int):void
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
permissionStatus | proprietà |
rate | proprietà |
rate:int
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Frequenza con cui il microfono cattura l’audio, espressa in kHz. I valori accettabili sono 5, 8, 11, 22 e 44. Il valore predefinito è 8 kHz, se supportato dal dispositivo di cattura audio in uso. In caso contrario, il valore predefinito è il primo livello di cattura disponibile sopra 8 kHz supportato dal dispositivo di cattura audio (di solito 11 kHz).
Nota: la frequenza effettiva è leggermente diversa dal valore rate
, come riportato nella tabella seguente:
Valore rate | Frequenza effettiva |
---|---|
44 | 44.100 Hz |
22 | 22.050 Hz |
11 | 11.025 Hz |
8 | 8.000 Hz |
5 | 5.512 Hz |
Implementazione
public function get rate():int
public function set rate(value:int):void
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
silenceLevel | proprietà |
silenceLevel:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
La quantità di suono necessaria per attivare il microfono e inviare l'evento activity
. Il valore predefinito è 10.
Implementazione
public function get silenceLevel():Number
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
silenceTimeout | proprietà |
silenceTimeout:int
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Il numero di millisecondi che trascorrono tra il momento in cui il microfono interrompe il rilevamento del suono e quello in cui viene inviato l'evento activity
. Il valore predefinito è 2000 (2 secondi).
Per impostare questo valore, utilizzate il metodo Microphone.setSilenceLevel()
.
Implementazione
public function get silenceTimeout():int
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
soundTransform | proprietà |
soundTransform:flash.media:SoundTransform
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Controlla l'audio dell'oggetto Microphone quando questo è in modalità loopback.
Implementazione
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
useEchoSuppression | proprietà |
useEchoSuppression:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Se la soppressione dell'eco è attivata, restituisce true
, altrimenti restituisce false
. Il valore predefinito è false
a meno che l'utente non abbia selezionato Riduci eco nel pannello delle impostazioni del microfono di Flash Player.
Implementazione
public function get useEchoSuppression():Boolean
Elementi API correlati
getEnhancedMicrophone | () | metodo |
public static function getEnhancedMicrophone(index:int = -1):Microphone
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.3, AIR 2.7 |
Restituisce un riferimento a un oggetto Microphone avanzato che è in grado di eseguire la soppressione dell'eco acustica. Utilizzate la soppressione dell'eco acustica per creare applicazioni chat audio/video che non necessitano di cuffie.
Il parametro index
del metodo Microphone.getEnhancedMicrophone()
e del metodo Microphone.getMicrophone()
funziona nello stesso modo.
Per utilizzare questo metodo su Android, aggiungete l'autorizzazione MODIFY_AUDIO_SETTINGS
sotto le aggiunte manifest di Android nel descrittore dell'applicazione.
Importante: in qualunque momento è possibile avere una sola istanza di dispositivo microfono avanzato. Tutte le altre istanze Microphone cessano di fornire dati audio e ricevono uno StatusEvent
con la proprietà code
Microphone.Unavailable
. Quando l'audio avanzato non viene inizializzato, le chiamate a questo metodo restituiscono null
, l'impostazione di un valore per Microphone.enhancedOptions
non ha effetto e tutte le istanze Microphone esistenti funzionano come prima.
Per configurare un oggetto Microphone avanzato, impostate la proprietà Microphone.enhancedOptions
. Il codice seguente utilizza un oggetto Microphone avanzato e la soppressione dell'eco acustica full-duplex in un test locale:
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
Il metodo setUseEchoSuppression()
viene ignorato quando si usa la soppressione dell'eco acustica.
Quando un file SWF tenta di accedere all'oggetto restituito da Microphone.getEnhancedMicrophone()
, ad esempio quando chiamate NetStream.attachAudio()
, viene visualizzata una finestra di dialogo relativa alla privacy che consente all'utente di scegliere se consentire o negare l'accesso al microfono. (Assicuratevi che le dimensioni dello stage siano almeno di 215x138 pixel, ovvero le dimensioni minime richieste da Flash Player per visualizzare la finestra di dialogo.)
Parametri
index:int (default = -1 ) — Il valore di indice del microfono.
|
Microphone — Un riferimento a un oggetto Microphone per la cattura dell’audio. Se l'audio avanzato non viene inizializzato, restituisce null .
|
Elementi API correlati
getMicrophone | () | metodo |
public static function getMicrophone(index:int = -1):Microphone
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Restituisce un riferimento a un oggetto Microphone per la cattura dell’audio. Per iniziare la cattura dell'audio, associare l'oggetto Microphone a un oggetto NetStream (vedete NetStream.attachAudio()
).
Chiamate multiple a Microphone.getMicrophone()
fanno riferimento allo stesso microfono. Pertanto, se lo script contiene le righe mic1 = Microphone.getMicrophone()
e mic2 = Microphone.getMicrophone()
, sia mic1
che mic2
fanno riferimento allo stesso microfono (predefinito).
In generale non si dovrebbe mai passare un valore corrispondente a index
. È sufficiente utilizzare il metodo air.Microphone.getMicrophone()
per restituire un riferimento al microfono predefinito. Tramite la sezione delle impostazioni del microfono nel pannello delle impostazioni di Flash Player, l'utente può specificare il microfono predefinito che dovrà essere utilizzato dall'applicazione. (Per accedere al pannello delle impostazioni di Flash Player, l'utente deve fare clic con il pulsante destro del mouse sul contenuto di Flash Player in esecuzione in un browser Web). Se passate un valore per index
, è possibile fare riferimento a un microfono diverso da quello scelto dall'utente. index
è utilizzabile in rari casi: ad esempio se l'applicazione acquisisce l'audio da due microfoni contemporaneamente. L'impostazione di Flash Player per il microfono predefinito viene utilizzata anche per il contenuto eseguito in Adobe AIR.
Utilizzate la proprietà Microphone.index
per ottenere il valore di indice dell'oggetto Microphone corrente. Questo valore può in seguito essere passato ad altri metodi della classe Microphone.
Quando un file SWF tenta di accedere all'oggetto restituito da Microphone.getMicrophone()
, ad esempio quando chiamate NetStream.attachAudio()
, viene visualizzata una finestra di dialogo relativa alla privacy che consente all'utente di scegliere se consentire o negare l'accesso al microfono. (Assicuratevi che le dimensioni dello stage siano almeno di 215x138 pixel, ovvero le dimensioni minime richieste da Flash Player per visualizzare la finestra di dialogo.)
Quando l'utente risponde a quanto richiesto da questa finestra di dialogo, viene inviato un evento status
che indica la risposta dell'utente. Potete anche verificare la proprietà Microphone.muted
per determinare se l'utente ha permesso o negato l'accesso al microfono.
Se Microphone.getMicrophone()
restituisce il valore null
, significa che il microfono è attualmente utilizzato da un'altra applicazione oppure che nel sistema non è installato alcun microfono. Per determinare se sono stati installati microfoni, utilizzate Microphones.names.length
. Per visualizzare il pannello delle impostazioni Microfono di Flash Player che consente all'utente di scegliere il microfono a cui fa riferimento Microphone.getMicrophone()
utilizzate Security.showSettings()
.
Parametri
index:int (default = -1 ) — Il valore di indice del microfono.
|
Microphone — Un riferimento a un oggetto Microphone per la cattura dell’audio.
|
Eventi
status: — Inviato quando un microfono segnala il proprio stato. Se il valore della proprietà code è "Microphone.muted" , l'utente ha negato al file SWF l'autorizzazione ad accedere al proprio microfono. Se il valore della proprietà code è "Microphone.unmuted" , l'utente ha consentito al file SWF di accedere al proprio microfono.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
var mic:Microphone = Microphone.getMicrophone(); mic.setLoopBack(); mic.addEventListener(StatusEvent.STATUS, mic_status); var tf:TextField = new TextField(); tf.autoSize = TextFieldAutoSize.LEFT; tf.text = "Detecting microphone..."; addChild(tf); function mic_status(evt:StatusEvent):void { tf.text = "Microphone is muted?: " + mic.muted; switch (evt.code) { case "Microphone.Unmuted": tf.appendText("\n" + "Microphone access was allowed."); break; case "Microphone.Muted": tf.appendText("\n" + "Microphone access was denied."); break; } }
requestPermission | () | metodo |
public function requestPermission():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 24.0 |
Richiede l’autorizzazione per l’uso del microfono da parte dell’applicazione.
Eventi
PermissionStatus: — Inviato quando l’autorizzazione richiesta viene concessa o negata dall’utente.
|
setLoopBack | () | metodo |
public function setLoopBack(state:Boolean = true):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Invia l’audio catturato da un microfono agli altoparlanti locali.
Parametri
state:Boolean (default = true )
|
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
setSilenceLevel | () | metodo |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Imposta il livello di input minimo che deve essere considerato suono e (facoltativamente) l'intervallo di silenzio che indica l'inizio del silenzio vero e proprio.
- Per impedire che il microfono rilevi qualunque suono, passate il valore 100 per
silenceLevel
; in questo modo l'eventoactivity
non viene mai inviato. - Per determinare la quantità di suono rilevata dal microfono, utilizzate la proprietà
Microphone.activityLevel
.
Speex include il rilevamento dell'attività vocale (VAD) e riduce automaticamente la larghezza di banda quando non viene rilevata alcuna voce. Se usate il codec Speex, Adobe consiglia di impostare il livello di silenzio su 0.
Il rilevamento dell'attività è la capacità di rilevare quando i livelli audio suggeriscono che una persona sta parlando. Se nessuno sta parlando, è possibile risparmiare ampiezza di banda poiché non è necessario inviare lo streaming audio associato. Questa informazione può essere utilizzata anche come feedback visivo per segnalare agli utenti che essi (o altri) non stanno producendo suoni.
I valori del silenzio corrispondono direttamente ai valori dell'attività. Il silenzio totale corrisponde a un valore di attività pari a 0. Il rumore costante (nella misura in cui può essere registrato in base all'impostazione corrente del guadagno) corrisponde a un valore di attività pari a 100. Una volta regolato adeguatamente il guadagno, quando non si parla il valore dell'attività è inferiore al valore del silenzio; quando si parla, il valore dell'attività supera il valore del silenzio.
Questo metodo ha uno scopo simile a quello di Camera.setMotionLevel()
; entrambi vengono utilizzati per specificare quando viene inviato l'evento activity
. Tuttavia, questi metodi hanno un impatto decisamente diverso sulla pubblicazione dello streaming:
Camera.setMotionLevel()
è studiato per rilevare il movimento e non influisce sull'uso dell'ampiezza di banda. Anche se uno streaming video non rileva alcun movimento, viene comunque inviato il video.Microphone.setSilenceLevel()
è studiato per ottimizzare l'ampiezza di banda. Quando uno streaming audio è considerato silenzioso, non viene inviato alcun dato audio. Viene invece inviato un unico messaggio per segnalare che il silenzio è cominciato.
Parametri
silenceLevel:Number — La quantità di suono necessaria per attivare il microfono e inviare l'evento activity . I valori accettabili sono compresi tra 0 e 100.
| |
timeout:int (default = -1 ) — Il numero di millisecondi che deve trascorrere in assenza di attività prima che l'audio venga considerato terminato da Flash Player o Adobe AIR e venga inviato l'evento dispatch . Il valore predefinito è 2000 (2 secondi). (Nota: il valore predefinito -1 che compare nella firma è un valore interno che indica a Flash Player o ad Adobe AIR di utilizzare 2000.)
|
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
setUseEchoSuppression | () | metodo |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9 |
Specifica se utilizzare la funzione di soppressione dell'eco del codec audio. Il valore predefinito è false
a meno che l'utente non abbia selezionato Riduci eco nel pannello delle impostazioni del microfono di Flash Player.
La soppressione dell'eco è un sistema per ridurre gli effetti del feedback audio, che si verifica quando il suono riprodotto dall'altoparlante di un computer viene ripreso dal microfono collegato allo stesso sistema (Si tratta di un effetto diverso dalla soppressione dell'eco acustica, che rimuove completamente il feedback. Il metodo setUseEchoSuppression()
viene ignorato quando si chiama il metodo getEnhancedMicrophone()
per utilizzare la soppressione dell'eco acustica.)
Di solito, è consigliabile utilizzare la soppressione dell'eco quando viene acquisito il suono riprodotto dagli altoparlanti (anziché una cuffia). Se il file SWF consente di specificare il dispositivo di uscita audio, è possibile chiamare Microphone.setUseEchoSuppression(true)
se l'utente indica che sta utilizzando sia gli altoparlanti che il microfono.
Queste impostazioni possono essere regolate anche nel pannello delle impostazioni del microfono di Flash Player.
Parametri
useEchoSuppression:Boolean — Un valore booleano che indica se utilizzare la soppressione dell'eco (true ) oppure no (false ).
|
Genera
PermissionError — L’applicazione non è autorizzata a utilizzare il microfono.
|
Elementi API correlati
Security.showSettings()
visualizza la finestra di dialogo Flash Player che richiede l'autorizzazione per l'accesso al microfono dell'utente. La chiamata a setLoopBack(true)
reindirizza l'input all'altoparlante locale, per consentire l'ascolto dell'audio durante l'esecuzione dell'esempio.
Due listener rilevano gli eventi activity
e status
. L'evento activity
viene inviato all'inizio ed eventualmente alla fine della sessione e viene catturato dal metodo activityHandler()
, che traccia le informazioni sull'evento. L'evento status
viene inviato se l'oggetto microphone associato segnala eventuali informazioni sullo stato; viene catturato e tracciato utilizzando il metodo statusHandler()
.
Nota: per il corretto funzionamento di questo esempio, deve essere collegato un microfono al computer.
package { import flash.display.Sprite; import flash.events.*; import flash.media.Microphone; import flash.system.Security; public class MicrophoneExample extends Sprite { public function MicrophoneExample() { var mic:Microphone = Microphone.getMicrophone(); Security.showSettings("2"); mic.setLoopBack(true); if (mic != null) { mic.setUseEchoSuppression(true); mic.addEventListener(ActivityEvent.ACTIVITY, activityHandler); mic.addEventListener(StatusEvent.STATUS, statusHandler); } } private function activityHandler(event:ActivityEvent):void { trace("activityHandler: " + event); } private function statusHandler(event:StatusEvent):void { trace("statusHandler: " + event); } } }
Tue Jun 12 2018, 02:44 PM Z