Pakket | flash.media |
Klasse | public final class Microphone |
Overerving | Microphone EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Als u de toegang wilt krijgen tot de microfoon van het apparaat, kunt u de methode Microphone.getMicrophone()
gebruiken. Deze methode retourneert echter een eenvoudige microfoon, die niet de mogelijkheid heeft om akoestische echo's te verwijderen. Als u akoestische echo's wilt elimineren, moet u een instantie van de microfoon ophalen met de methode Microphone.getEnhancedMicrophone()
. Deze methode retourneert een microfoon waarbij de opheffingsfunctie voor akoestische echo's voor mobiele apparaten is ingeschakeld. Met akoestische echo-opheffing kunt u realtime audio- en videotoepassingen maken waarvoor geen hoofdtelefoon is vereist.
Een realtime chattoepassing maken
Als u een realtime chattoepassing wilt maken, moet u de audio vastleggen en verzenden naar Flash Media Server. Met de klassen NetConnection en NetStream kunt u de audiostream naar Flash Media Server verzenden. De audio kan vervolgens door Flash Media Server worden gebroadcast naar andere clients. Als u een chattoepassing wilt maken waarvoor geen hoofdtelefoon nodig is, moet u de functie voor akoestische echo-opheffing gebruiken. Met de functie voor akoestische echo-opheffing voorkomt u de audiofeedbacklus die optreedt wanneer audio voor een tweede keer wordt door de microfoon wordt vastgelegd nadat de audio via de luidsprekers is afgespeeld. Als u deze functie wilt gebruiken, moet u de methode Microphone.getEnhancedMicrophone()
aanroepen om een referentie naar een Microphone-instantie te verkrijgen. Stel Microphone.enhancedOptions
in op een instantie van de MicrophoneEnhancedOptions
-klasse om de instellingen op te geven.
Audio van de microfoon lokaal afspelen
Roep de methode Microphone setLoopback()
aan om de audio van de microfoon rechtstreeks naar de lokale computer of het audiouitvoerapparaat te verzenden. Ongecontroleerde audiofeedback ('rondzingen') is een inherent probleem dat optreedt wanneer de audiouitvoer wordt opgepikt door de microfooninvoer. Met de methode setUseEchoSuppression()
kunt u het risico van dergelijke feedback beperken (maar niet geheel verwijderen).
Audio van de microfoon vastleggen voor lokale opnamen of verwerking
Om de audio van de microfoon vast te leggen, luistert u naar de sampleData
-gebeurtenissen die door een Microphone-instantie worden verzonden. Het SampleDataEvent-object dat voor deze gebeurtenis wordt verzonden, bevat de audiogegevens.
Zie de klasse Camera voor informatie over het opnemen van video.
Runtime-ondersteuning voor microfoons
De klasse Microphone wordt niet ondersteund in Flash Player die wordt uitgevoerd op een mobiele browser.
AIR-profielondersteuning: De Microphone-klasse wordt ondersteund op desktopbesturingssystemen, en op iOS- en Android-apparaten. Deze functie wordt niet ondersteund op AIR for TV-apparaten. Zie AIR-profielondersteuning voor meer informatie over API-ondersteuning voor meerdere profielen.
Met de eigenschap Microphone.isSupported
kunt u testen op ondersteuning tijdens runtime. Bij AIR for TV-apparaten is Microphone.isSupported
gelijk aan true
, maar Microphone.getMicrophone()
retourneert altijd null
.
Besturingselementen voor privacy
Flash Player geeft het dialoogvenster Privacy weer waarin de gebruiker de toegang tot de microfoon kan toestaan of weigeren. De afmetingen van het toepassingsvenster moeten minimaal 215 x 138 pixels bedragen. Dit is de minimale afmetingen voor de weergave van een dialoogvenster. Bij een kleiner venster wordt de toegang automatisch geweigerd.
Voor inhoud die wordt uitgevoerd in de sandbox van de AIR-toepassing is geen machtiging nodig voor toegang tot de microfoon. Er wordt daarom ook geen dialoogvenster weergegeven. Voor AIR-inhoud die buiten de sandbox van de toepassing wordt uitgevoerd, is wel een machtiging nodig. Het dialoogvenster Privacy wordt weergegeven.
Meer informatie
Cristophe Coenraets: voice-notities voor Android
Michael Chaize: AIR, Android en de microfoon
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
activityLevel : Number [alleen-lezen]
De hoeveelheid geluid die de microfoon detecteert. | Microphone | ||
codec : String
De codec die moet worden gebruikt om audio te comprimeren. | Microphone | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
enableVAD : Boolean
Schakel de spraakactiviteitdetectie Speex in. | Microphone | ||
encodeQuality : int
De gecodeerde spraakkwaliteit wanneer de Speex-codec wordt gebruikt. | Microphone | ||
enhancedOptions : MicrophoneEnhancedOptions
Hiermee beheert u de verbeterde microfoonopties. | Microphone | ||
framesPerPacket : int
Het aantal Speex-spraakframes dat in een pakket wordt verzonden (bericht). | Microphone | ||
gain : Number
De hoeveelheid waarmee de microfoon het signaal versterkt. | Microphone | ||
index : int [alleen-lezen]
De index van de microfoon, zoals wordt weerspiegeld in de array die door Microphone.names wordt geretourneerd. | Microphone | ||
isSupported : Boolean [statisch] [alleen-lezen]
De eigenschap isSupported wordt ingesteld op true als de Camera-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false. | Microphone | ||
muted : Boolean [alleen-lezen]
Geeft op of de gebruiker toegang tot de microfoon heeft geweigerd (true) of toegestaan (false). | Microphone | ||
name : String [alleen-lezen]
De naam van het huidige geluidsopnameapparaat, zoals door de geluidsopnamehardware wordt geretourneerd. | Microphone | ||
names : Array [statisch] [alleen-lezen]
Een array van tekenreeksen die de namen van alle beschikbare geluidsopnameapparaten bevat. | Microphone | ||
noiseSuppressionLevel : int
Maximale afname van de ruis in dB (negatief getal) dat voor de Speex-codeermodule wordt gebruikt. | Microphone | ||
permissionStatus : String [statisch] [alleen-lezen]
Hiermee bepaalt u of toestemming is verleend aan de toepassing om de microfoon te gebruiken. | Microphone | ||
rate : int
De frequentie waarop de microfoon geluid vastlegt, in kHz. | Microphone | ||
silenceLevel : Number [alleen-lezen]
De hoeveelheid geluid die is vereist om de microfoon te activeren en de gebeurtenis activity te verzenden. | Microphone | ||
silenceTimeout : int [alleen-lezen]
Het aantal milliseconden tussen het moment dat de microfoon stopt met het detecteren van geluid en het moment dat de gebeurtenis activity wordt verzonden. | Microphone | ||
soundTransform : flash.media:SoundTransform
Beheert het geluid van dit object Microphone wanneer de loopback-modus is ingeschakeld. | Microphone | ||
useEchoSuppression : Boolean [alleen-lezen]
Ingesteld op true wanneer echo-onderdrukking is ingeschakeld; anders false. | Microphone |
Methode | Gedefinieerd door | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
[statisch]
Retourneert een referentie naar een verbeterd Microphone-object waarmee een akoestische echo-opheffing kan worden uitgevoerd. | Microphone | ||
[statisch]
Retourneert een verwijzing naar een object Microphone voor het vastleggen van audio. | Microphone | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Hiermee wordt door de toepassing toestemming gevraagd voor de microfoon. | Microphone | ||
Geleidt audio die door een microfoon wordt vastgelegd naar de lokale luidsprekers. | Microphone | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Stelt het minimale invoerniveau in dat als geluid moet worden beschouwd en (optioneel) de duur van de stiltetijd die aangeeft dat stilte is begonnen. | Microphone | ||
Hiermee wordt opgegeven of het kenmerk voor echo-onderdrukking van de audio-codec wordt gebruikt. | Microphone | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
activityLevel | eigenschap |
activityLevel:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De hoeveelheid geluid die de microfoon detecteert. Waarden liggen tussen 0 (geen geluid wordt gedetecteerd) en 100 (zeer luid geluid wordt gedetecteerd). Met de waarde van deze eigenschap kunt u bepalen welke waarde u het beste kunt doorgeven aan de methode Microphone.setSilenceLevel()
.
Als de eigenschap muted
van de microfoon is ingesteld op true
, is de waarde van deze eigenschap altijd -1.
Implementatie
public function get activityLevel():Number
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
codec | eigenschap |
codec:String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De codec die moet worden gebruikt om audio te comprimeren. Beschikbare codecs zijn Nellymoser (standaard) en Speex. De opsommingsklasse SoundCodec
bevat de verschillende waarden die mogelijk zijn voor de eigenschap codec
.
Als u de Nellymoser-codec gebruikt, kunt u de samplefrequentie instellen met Microphone.rate()
. Bij de Speex-codec is de frequentie ingesteld op 16 kHz.
Speex bevat VAD-functionaliteit (Voice Activity Detection) en vermindert automatisch de bandbreedte als er geen stem wordt gehoord. Wanneer u de Speex-codec gebruikt, wordt door Adobe aanbevolen dat u het stilteniveau instelt op 0. Gebruik hiervoor de methode Microphone.setSilenceLevel()
.
Implementatie
public function get codec():String
public function set codec(value:String):void
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
enableVAD | eigenschap |
enableVAD:Boolean
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Schakel de spraakactiviteitdetectie Speex in.
Implementatie
public function get enableVAD():Boolean
public function set enableVAD(value:Boolean):void
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
encodeQuality | eigenschap |
encodeQuality:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
De gecodeerde spraakkwaliteit wanneer de Speex-codec wordt gebruikt. Toegestane waarden lopen van 0 tot en met 10. De standaardwaarde is 6. Hogere getallen betekenen hogere kwaliteit, maar vereisen meer bandbreedte (zie de volgende tabel). De vermelde bitratewaarden zijn nettosnelheden en bevatten geen pakketoverheads.
Kwaliteit | Vereiste bitrate (kilobits per seconde) |
---|---|
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 |
Implementatie
public function get encodeQuality():int
public function set encodeQuality(value:int):void
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
enhancedOptions | eigenschap |
enhancedOptions:MicrophoneEnhancedOptions
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.3, AIR 2.7 |
Hiermee beheert u de verbeterde microfoonopties. Zie de klasse MicrophoneEnhancedOptions
voor meer informatie. Deze eigenschap wordt genegeerd voor niet-verbeterde Microphone-instanties.
Implementatie
public function get enhancedOptions():MicrophoneEnhancedOptions
public function set enhancedOptions(value:MicrophoneEnhancedOptions):void
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
framesPerPacket | eigenschap |
framesPerPacket:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10, AIR 1.5 |
Het aantal Speex-spraakframes dat in een pakket wordt verzonden (bericht). Elk frame is 20 ms lang. De standaardwaarde is twee frames per pakket.
Hoe meer Speex-frames in een bericht, des te minder bandbreedte er nodig is maar des te langer de vertraging bij het verzenden van het bericht. Hoe minder Speex-frames, des te meer bandbreedte er nodig is maar des te korter de vertraging.
Implementatie
public function get framesPerPacket():int
public function set framesPerPacket(value:int):void
gain | eigenschap |
gain:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De hoeveelheid waarmee de microfoon het signaal versterkt. Geldige waarden zijn 0 tot en met 100. De standaardwaarde is 50.
Implementatie
public function get gain():Number
public function set gain(value:Number):void
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
index | eigenschap |
index:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De index van de microfoon, zoals wordt weerspiegeld in de array die door Microphone.names
wordt geretourneerd.
Implementatie
public function get index():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
isSupported | eigenschap |
isSupported:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
De eigenschap isSupported
wordt ingesteld op true
als de Camera-klasse op het huidige platform wordt ondersteund. Als dit niet het geval is, wordt de eigenschap ingesteld op false
.
Implementatie
public static function get isSupported():Boolean
muted | eigenschap |
muted:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Geeft op of de gebruiker toegang tot de microfoon heeft geweigerd (true
) of toegestaan (false
). Wanneer deze waarde verandert, wordt een gebeurtenis status
verzonden. Zie Microphone.getMicrophone()
voor meer informatie.
Implementatie
public function get muted():Boolean
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
name | eigenschap |
names | eigenschap |
names:Array
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Een array van tekenreeksen die de namen van alle beschikbare geluidsopnameapparaten bevat. De namen worden geretourneerd zonder dat het deelvenster Privacy van Flash Player Settings aan de gebruiker wordt weergegeven. Deze array biedt de op nul gebaseerde index van elk geluidsopnameapparaat en het aantal geluidsopnameapparaten in het systeem, via de eigenschap Microphone.names.length
. Zie de klasse Array voor meer informatie.
Het aanroepen van Microphone.names
vereist een uitgebreid onderzoek van de hardware waardoor het enkele seconden kan duren voordat de array wordt gemaakt. In de meeste gevallen kunt u de standaardmicrofoon gebruiken.
Opmerking: gebruik de eigenschap name
om de naam van de huidige microfoon te bepalen.
Implementatie
public static function get names():Array
Verwante API-elementen
noiseSuppressionLevel | eigenschap |
noiseSuppressionLevel:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.1, AIR 2 |
Maximale afname van de ruis in dB (negatief getal) dat voor de Speex-codeermodule wordt gebruikt. Indien ingeschakeld, wordt ruisonderdrukking toegepast op geluid dat wordt vastgelegd via de microfoon voordat Speex-compressie plaatsvindt. Stel de waarde in op nul om de ruisonderdrukking uit te schakelen. De ruisonderdrukking is standaard ingeschakeld met een maximale resultaat van -30 dB. Genegeerd wanneer de Nellymoser-codec is geselecteerd.
Implementatie
public function get noiseSuppressionLevel():int
public function set noiseSuppressionLevel(value:int):void
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
permissionStatus | eigenschap |
rate | eigenschap |
rate:int
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De frequentie waarop de microfoon geluid vastlegt, in kHz. Acceptabele waarden zijn 5, 8, 11, 22 en 44. De standaardwaarde is 8 kHz wanneer uw geluidsopnameapparaat deze waarde ondersteunt. Anders is de standaardwaarde het eerstvolgende beschikbare vastleggingsniveau boven 8 kHz dat uw geluidsopnameapparaat ondersteunt; dit is doorgaans 11 kHz.
Opmerking: de werkelijke frequentie varieert van de waarde rate
, zoals aangegeven in de volgende tabel:
Waarde van rate | Werkelijke frequentie |
---|---|
44 | 44.100 Hz |
22 | 22.050 Hz |
11 | 11.025 Hz |
8 | 8000 Hz |
5 | 5512 Hz |
Implementatie
public function get rate():int
public function set rate(value:int):void
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
silenceLevel | eigenschap |
silenceLevel:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
De hoeveelheid geluid die is vereist om de microfoon te activeren en de gebeurtenis activity
te verzenden. De standaardwaarde is 10.
Implementatie
public function get silenceLevel():Number
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
silenceTimeout | eigenschap |
silenceTimeout:int
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Het aantal milliseconden tussen het moment dat de microfoon stopt met het detecteren van geluid en het moment dat de gebeurtenis activity
wordt verzonden. De standaardwaarde is 2000 (2 seconden).
Gebruik de methode Microphone.setSilenceLevel()
om deze waarde in te stellen.
Implementatie
public function get silenceTimeout():int
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
soundTransform | eigenschap |
soundTransform:flash.media:SoundTransform
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Beheert het geluid van dit object Microphone wanneer de loopback-modus is ingeschakeld.
Implementatie
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
useEchoSuppression | eigenschap |
useEchoSuppression:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Ingesteld op true
wanneer echo-onderdrukking is ingeschakeld; anders false
. De standaardwaarde is false
tenzij de gebruiker Reduce Echo heeft geselecteerd in het deelvenster Microphone van Flash Player Settings.
Implementatie
public function get useEchoSuppression():Boolean
Verwante API-elementen
getEnhancedMicrophone | () | methode |
public static function getEnhancedMicrophone(index:int = -1):Microphone
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 10.3, AIR 2.7 |
Retourneert een referentie naar een verbeterd Microphone-object waarmee een akoestische echo-opheffing kan worden uitgevoerd. Met akoestische echo-opheffing kunt u audio- en videochattoepassingen maken waarvoor geen hoofdtelefoon is vereist.
De parameter index
voor de methode Microphone.getEnhancedMicrophone()
en de methode Microphone.getMicrophone()
werken op dezelfde manier.
Als u deze methode wilt toepassen op Android-apparaten, moet u de machtiging MODIFY_AUDIO_SETTINGS
toevoegen onder de Android-manifesttoevoegingen in het descriptorbestand van de app.
Belangrijk: Er is op elk moment maar één enkele instantie van een verbeterd microfoonapparaat beschikbaar. Alle overige Microphone-instanties stoppen met het leveren van audiogegevens en krijgen een StatusEvent
met de code
-eigenschap Microphone.Unavailable
. Wanneer de verbeterde audio niet kan worden geïnitialiseerd, retourneert deze methode de waarde null
. Het instellen van een waarde voor Microphone.enhancedOptions
heeft geen effect en alle bestaande Microphone-instanties functioneren als voorheen.
Als u een verbeterd Microphone-object wilt configureren, moet u de eigenschap Microphone.enhancedOptions
instellen. De volgende code gebruikt een verbeterd Microphone-object en full-duplex akoestische echo-opheffing bij een lokale test:
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
De methode setUseEchoSuppression()
wordt genegeerd wanneer de akoestische echo-opheffing wordt gebruikt.
Wanneer een SWF-bestand de microfoon probeert te gebruiken die wordt geretourneerd door de methode Microphone.getEnhancedMicrophone()
(bijvoorbeeld wanneer u NetStream.attachAudio()
aanroept), geeft Flash Player een dialoogvenster Privacy weer waarin de gebruiker de toegang tot de microfoon kan toestaan of weigeren. (Zorg dat de grootte van het werkgebied tenminste 215 x 138 pixels is. Dit is de minimale grootte die Flash Player nodig heeft om het dialoogvenster weer te geven.)
Parameters
index:int (default = -1 ) — De indexwaarde van de microfoon.
|
Microphone — Een referentie naar een Microphone-object voor het vastleggen van audio. Als de verbeterde audio niet kan worden geïnitialiseerd, wordt de waarde null geretourneerd.
|
Verwante API-elementen
getMicrophone | () | methode |
public static function getMicrophone(index:int = -1):Microphone
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Retourneert een verwijzing naar een object Microphone voor het vastleggen van audio. Als u wilt beginnen met het vastleggen van audio, koppelt u het object Microphone aan een object NetStream (zie NetStream.attachAudio()
).
Meerdere aanroepen van Microphone.getMicrophone()
verwijzen naar dezelfde microfoon. Dus als uw code de regels mic1 = Microphone.getMicrophone()
en mic2 = Microphone.getMicrophone()
bevat, verwijzen zowel mic1
als mic2
naar dezelfde (standaard)microfoon.
In het algemeen moet u geen waarde voor index
doorgeven. U kunt eenvoudigweg air.Microphone.getMicrophone()
aanroepen om een verwijzing naar de standaardmicrofoon te retourneren. In de sectie met microfooninstellingen in het deelvenster met Flash Player-instellingen kan de gebruiker de standaardmicrofoon voor de toepassing opgeven. (Het deelvenster met Flash Player-instellingen wordt geopend als de gebruiker rechtsklikt op Flash Player-inhoud in een webbrowser.) Wanneer u een waarde voor index
doorgeeft, kunt u naar een andere microfoon verwijzen dan de microfoon die door de gebruiker is gekozen. Onder bepaalde omstandigheden kunt u index
gebruiken, bijvoorbeeld wanneer de toepassing audio vastlegt van twee microfoons tegelijk. De inhoud die in Adobe AIR wordt uitgevoerd maakt ook gebruik van de Flash Player-instelling voor de standaardmicrofoon.
Gebruik de eigenschap Microphone.index
om de indexwaarde van het huidige object Microphone op te halen. U kunt deze waarde vervolgens doorgeven aan andere methoden van de klasse Microphone.
Wanneer een SWF-bestand de microfoon probeert te gebruiken die wordt geretourneerd door de methode Microphone.getMicrophone()
(bijvoorbeeld wanneer u NetStream.attachAudio()
aanroept), geeft Flash Player een dialoogvenster Privacy weer waarin de gebruiker de toegang tot de microfoon kan toestaan of weigeren. (Zorg dat de grootte van het werkgebied tenminste 215 x 138 pixels is. Dit is de minimale grootte die Flash Player nodig heeft om het dialoogvenster weer te geven.)
Wanneer de gebruiker op dit dialoogvenster reageert, wordt een gebeurtenis status
geretourneerd die het antwoord van de gebruiker aangeeft. U kunt ook de eigenschap Microphone.muted
controleren om te bepalen of de gebruiker toegang tot de microfoon heeft toegestaan of geweigerd.
Wanneer Microphone.getMicrophone()
null
retourneert, wordt de microfoon door een andere toepassing gebruikt of zijn er geen microfoons op het systeem geïnstalleerd. Gebruik Microphones.names.length
om te bepalen of er microfoons zijn geïnstalleerd. Gebruik System.showSettings()
om het deelvenster Microphone van Flash Player Settings weer te geven. In dit deelvenster kan de gebruiker de microfoon kiezen waarnaar wordt verwezen door Microphone.getMicrophone()
.
Parameters
index:int (default = -1 ) — De indexwaarde van de microfoon.
|
Microphone — Een referentie naar een Microphone-object voor het vastleggen van audio.
|
Gebeurtenissen
status: — Wordt verzonden wanneer een microfoon de status meldt. Wanneer de eigenschap code is ingesteld op Microphone.Muted , heeft de gebruiker het SWF-bestand de toegang tot de microfoon van de gebruiker geweigerd. Wanneer de eigenschap code is ingesteld op Microphone.Unmuted , heeft de gebruiker het SWF-bestand de toegang tot de microfoon van de gebruiker toegestaan.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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 | () | methode |
public function requestPermission():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 24.0 |
Hiermee wordt door de toepassing toestemming gevraagd voor de microfoon.
Gebeurtenissen
PermissionStatus: — wordt verzonden wanneer de aangevraagde toestemming door de gebruiker wordt verleend/geweigerd.
|
setLoopBack | () | methode |
public function setLoopBack(state:Boolean = true):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Geleidt audio die door een microfoon wordt vastgelegd naar de lokale luidsprekers.
Parameters
state:Boolean (default = true )
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
setSilenceLevel | () | methode |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Stelt het minimale invoerniveau in dat als geluid moet worden beschouwd en (optioneel) de duur van de stiltetijd die aangeeft dat stilte is begonnen.
- Als u wilt voorkomen dat de microfoon geluid detecteert, geeft u de waarde 100 door voor
silenceLevel
; hierdoor wordt de gebeurtenisactivity
nooit verzonden. - Gebruik de eigenschap
Microphone.activityLevel
om de hoeveelheid geluid te bepalen die de microfoon momenteel detecteert.
Speex bevat VAD-functionaliteit (Voice Activity Detection) en vermindert automatisch de bandbreedte als er geen stem wordt gehoord. Wanneer u de Speex-codec gebruikt, wordt door Adobe aanbevolen dat u het stilteniveau instelt op 0.
Activiteitsdetectie is de mogelijkheid te detecteren wanneer audioniveaus suggereren dat een persoon praat. Wanneer iemand niet praat, kan bandbreedte worden bespaard omdat de bijbehorende audiostream niet hoeft te worden verzonden. Deze informatie kan ook worden gebruikt voor visuele feedback, zodat de gebruikers weten dat zij (of anderen) stil zijn.
Stiltewaarden komen direct overeen met activiteitwaarden. Volledige stilte komt overeen met de activiteitwaarde 0. Constant luid geluid (zo luid als kan worden geregistreerd op basis van de huidige versterkingsinstelling) komt overeen met een activiteitwaarde van 100. Nadat de versterking is aangepast, is uw activiteitwaarde lager dan uw stiltewaarde wanneer u niet praat. Wanneer u praat, is uw activiteitwaarde hoger dan uw stiltewaarde.
Deze methode lijkt op Camera.setMotionLevel()
; beide methoden worden gebruikt om op te geven wanneer de gebeurtenis activity
wordt verzonden. Deze methoden hebben echter een ander effect op het publiceren van streams:
Camera.setMotionLevel()
is ontworpen om beweging te detecteren en heeft geen effect op het bandbreedtegebruik. Zelfs wanneer een videostream geen beweging detecteert, wordt video verzonden.Microphone.setSilenceLevel()
is ontworpen om de bandbreedte te optimaliseren. Wanneer een audiostream als stil wordt beschouwd, worden geen audiogegevens verzonden. Er wordt in plaats daarvan één bericht verzonden dat aangeeft dat een stilte is gestart.
Parameters
silenceLevel:Number — De hoeveelheid geluid die is vereist om de microfoon te activeren en de gebeurtenis activity te verzenden. Acceptabele waarden lopen van 0 tot 100.
| |
timeout:int (default = -1 ) — Het aantal milliseconden dat moet verstrijken zonder activiteit voordat Flash Player of Adobe AIR geluid als gestopt beschouwt en de gebeurtenis dispatch verzendt. De standaardwaarde is 2000 (2 seconden). (Opmerking: de standaardwaarde die wordt weergegeven, -1, is een interne waarde die aangeeft dat Flash Player of Adobe AIR 2000 moet gebruiken.)
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
setUseEchoSuppression | () | methode |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9 |
Hiermee wordt opgegeven of het kenmerk voor echo-onderdrukking van de audio-codec wordt gebruikt. De standaardwaarde is false
tenzij de gebruiker Reduce Echo heeft geselecteerd in het deelvenster Microphone van Flash Player Settings.
Echo-onderdrukking probeert de effecten van audiofeedback te verminderen. Feedback wordt veroorzaakt wanneer geluid van de luidspreker wordt opgevangen door een microfoon op dezelfde systeem. (Dit verschilt van het opheffen van de akoestische echo, waarmee de feedback volledig wordt verwijderd. De methode setUseEchoSuppression()
wordt genegeerd wanneer u de methode getEnhancedMicrophone()
aanroept om akoestische echo-opheffing te gebruiken.)
Het is doorgaans raadzaam de echo te onderdrukken wanneer het geluid dat wordt vastgelegd, wordt afgespeeld via luidsprekers in plaats van via een koptelefoon. Wanneer uw SWF-bestand gebruikers toestaat het geluidsuitvoerapparaat op te geven, wilt u mogelijk Microphone.setUseEchoSuppression(true)
aanroepen wanneer de gebruikers aangeven dat zij luidsprekers gebruiken en ook de microfoon zullen gebruiken.
Gebruikers kunnen deze instellingen ook zelf aanpassen in het deelvenster Microphone van Flash Player Settings.
Parameters
useEchoSuppression:Boolean — Met deze Booleaanse waarde wordt aangegeven of echo-opheffing wordt toegepast (true ) of juist niet (false ).
|
Gegenereerde uitzondering
PermissionError — De toepassing heeft geen toestemming om de microfoon te gebruiken.
|
Verwante API-elementen
Security.showSettings()
geeft het Flash Player-dialoogvenster weer waarin toegang wordt gevraagd tot het gebruik van de microfoon van de gebruiker. De aanroep van setLoopBack(true)
stuurt de invoer door naar de lokale luidspreker, zodat u het geluid hoort wanneer u het voorbeeld uitvoert.
Twee listeners luisteren naar gebeurtenissen activity
enstatus
. De gebeurtenis activity
wordt verzonden aan het begin en het einde (indien van toepassing) van de sessie en wordt vastgelegd door de methode activityHandler()
die informatie over de gebeurtenis traceert. De gebeurtenis status
wordt verzonden wanneer het object voor de aangesloten microfoon statusinformatie meldt; de gebeurtenis wordt vastgelegd en getraceerd via de methode statusHandler()
.
Opmerking: dit voorbeeld werkt alleen correct wanneer een microfoon op uw computer is aangesloten.
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); } } }
Wed Jun 13 2018, 11:42 AM Z