Paket | flash.media |
Klasse | public final class Microphone |
Vererbung | Microphone EventDispatcher Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Um auf das Gerätemikrofon zuzugreifen, können Sie die Microphone.getMicrophone()
-Methode verwenden. Diese Methode gibt jedoch ein einfaches Mikrofon zurück, das kein akustisches Echo eliminieren kann. Um akustisches Echo zu eliminieren, müssen Sie eine Instanz des Mikrofons mithilfe der Microphone.getEnhancedMicrophone()
-Methode auf rufen. Diese Methode gibt ein Gerätemikrofon zurück, bei dem die Funktion zur akustischen Echokompensation für Mobilgeräte aktiviert ist. Verwenden Sie die akustische Echokompensation, um Echtzeit-Audio/Video-Anwendungen zu erstellen, für die keine Headsets erforderlich sind.
Erstellen einer Echtzeit-Chat-Anwendung
Um eine Echtzeit-Chat-Anwendung zu erstellen, erfassen Sie Audio und senden Sie es an Flash Media Server. Senden Sie den Audiostream mithilfe der NetConnection- und NetStream-Klassen an Flash Media Server. Flash Media Server kann das Audio an andere Clients senden. Um eine Chat-Anwendung zu erstellen, für die keine Headsets erforderlich sind, verwenden Sie die akustische Echokompensation. Die akustische Echokompensation verhindert die Rückkopplung, die auftritt, wenn Audio vom Mikrofon aufgenommen, über die Lautsprecher ausgegeben und wieder vom Mikrofon aufgenommen wird. Um die akustische Echokompensation zu verwenden, rufen Sie die Microphone.getEnhancedMicrophone()
-Methode zum Abrufen eines Verweises auf eine Microphone-Instanz auf. Legen Sie Microphone.enhancedOptions
auf eine Instanz der MicrophoneEnhancedOptions
-Klasse fest, um Einstellungen zu konfigurieren.
Lokales Abspielen des Mikrofonaudios
Rufen Sie die Microphone-setLoopback()
-Methode auf, um das Mikrofonaudio direkt an den lokalen Computer oder an das Audiogerät zu leiten. Es besteht immer die Gefahr einer unkontrollierten Rückkopplung, die besonders dann auftritt, wenn die Audioausgabe vom Mikrofon aufgenommen werden kann. Die setUseEchoSuppression()
-Methode kann das Risiko einer Rückkopplung verringern, aber nicht eliminieren.
Erfassen des Mikrofonaudios zur lokalen Aufnahme oder Verarbeitung
Um Mikrofonaudiodaten aufzunehmen, verwenden Sie einen Listener für sampleData
-Ereignisse, die von einer Microphone-Instanz abgesetzt werden. Das SampleDataEvent-Objekt, das für dieses Ereignis abgesetzt wird, enthält die Audiodaten.
Informationen zum Aufzeichnen von Video finden Sie in der Beschreibung der Camera-Klasse.
Mikrofonunterstützung zur Laufzeit
Die Microphone-Klasse wird in Flash Player nicht unterstützt, wenn dieser in einem mobilen Browser ausgeführt wird.
AIR-Profilunterstützung: Die Microphone-Klasse wird unter Desktop-Betriebssystemen sowie auf Mobilgeräten mit iOS und Android unterstützt. Bei Geräten mit AIR für TV wird sie nicht unterstützt. Weitere Informationen zum API-Support über mehrere Profile finden Sie unter Unterstützung von AIR-Profilen.
Mit der Microphone.isSupported
-Eigenschaft können Sie testen, ob zur Laufzeit Unterstützung gegeben ist. Beachten Sie, dass bei Geräten mit AIR für TV Microphone.isSupported
den Wert true
hat, Microphone.getMicrophone()
jedoch immer null
zurückgibt.
Datenschutzsteuerungen
Flash Player zeigt ein Zugriffsschutz-Dialogfeld an, in dem der Benutzer den Zugriff auf das Mikrofon zulassen oder verweigern kann. Das Anwendungsfenster muss mindestens 215 x 138 Pixel groß sein; dies ist die Mindestgröße, die für die Anzeige des Dialogfelds erforderlich ist. Andernfalls wird der Zugriff automatisch verweigert.
Inhalt, der in der AIR-Anwendungssandbox ausgeführt wird, braucht keine Berechtigung für den Zugriff auf das Mikrofon; es wird kein Dialogfeld angezeigt. Inhalt, der außerhalb der AIR-Anwendungssandbox ausgeführt wird, benötigt eine Berechtigung; das Datenschutz-Dialogfeld wird angezeigt.
Weitere Informationen
Cristophe Coenraets: Voice Notes for Android
Michael Chaize: AIR, Android, and the Microphone
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
activityLevel : Number [schreibgeschützt]
Die über das Mikrofon ermittelte Soundmenge. | Microphone | ||
codec : String
Der für die Audiokomprimierung zu verwendende Codec. | Microphone | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
enableVAD : Boolean
Aktiviert die Speex-Sprechpausenerkennung. | Microphone | ||
encodeQuality : int
Die kodierte Sprachqualität, wenn der Speex-Codec verwendet wird. | Microphone | ||
enhancedOptions : MicrophoneEnhancedOptions
Steuert erweiterte Mikrofonoptionen. | Microphone | ||
framesPerPacket : int
Anzahl der Speex-Sprachframes, die in einem Paket (Meldung) übertragen werden. | Microphone | ||
gain : Number
Betrag, um den das Mikrofon das Signal verstärkt. | Microphone | ||
index : int [schreibgeschützt]
Der Index des Mikrofons, der in dem durch „Microphone.names“ zurückgegebenen Array angegeben ist. | Microphone | ||
isSupported : Boolean [statisch] [schreibgeschützt]
Die isSupported-Eigenschaft hat den Wert „true“, wenn die Microphone-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert „false“. | Microphone | ||
muted : Boolean [schreibgeschützt]
Gibt an, ob der Benutzer den Zugriff auf das Mikrofon verweigert (true) oder gewährt hat (false). | Microphone | ||
name : String [schreibgeschützt]
Der Name des aktuellen Soundaufnahmegeräts, der von der Soundaufnahmehardware zurückgegeben wurde. | Microphone | ||
names : Array [statisch] [schreibgeschützt]
Ein Array mit den Namen aller verfügbaren Soundaufnahmegeräte. | Microphone | ||
noiseSuppressionLevel : int
Maximale Dämpfung des Rauschens in dB (negative Zahl), die für den Speex-Encoder verwendet wird. | Microphone | ||
permissionStatus : String [statisch] [schreibgeschützt]
Bestimmen Sie, ob der Anwendung die Berechtigung zur Verwendung des Mikrofons erteilt wurde. | Microphone | ||
rate : int
Die Abtastrate (in kHz), mit der das Mikrofon Sound aufnimmt. | Microphone | ||
silenceLevel : Number [schreibgeschützt]
Die erforderliche Soundmenge zum Aktivieren des Mikrofons und zum Auslösen des activity-Ereignisses. | Microphone | ||
silenceTimeout : int [schreibgeschützt]
Die Zeit in Millisekunden zwischen dem Zeitpunkt, zu dem mit dem Mikrofon kein Sound mehr erfasst wird, und dem Zeitpunkt, zu dem das activity-Ereignis ausgelöst wird. | Microphone | ||
soundTransform : flash.media:SoundTransform
Steuert den Sound dieses Microphone-Objekts im Loopback-Modus. | Microphone | ||
useEchoSuppression : Boolean [schreibgeschützt]
Weist den Wert „true“ auf, wenn die Echounterdrückung aktiviert ist, andernfalls „false“. | Microphone |
Methode | Definiert von | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registriert ein Ereignis-Listener-Objekt bei einem EventDispatcher-Objekt, sodass der Listener über ein Ereignis benachrichtigt wird. | EventDispatcher | ||
Sendet ein Ereignis in den Ereignisablauf. | EventDispatcher | ||
[statisch]
Gibt einen Verweis auf ein erweitertes Microphone-Objekt zurück, das akustische Echokompensation ausführen kann. | Microphone | ||
[statisch]
Gibt einen Verweis auf ein Mikrofon-Objekt zur Aufnahme von Audiodaten zurück. | Microphone | ||
Überprüft, ob das EventDispatcher-Objekt Listener für einen bestimmten Ereignistyp registriert hat. | EventDispatcher | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Entfernt einen Listener aus dem EventDispatcher-Objekt. | EventDispatcher | ||
Fordert Mikrofonberechtigung für die Anwendung an. | Microphone | ||
Leitet von einem Mikrofon aufgezeichnetes Audio an die lokalen Lautsprecher. | Microphone | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Legt die minimale Eingangslautstärke fest, bei der Sound als solcher eingestuft wird und (optional) die Länge der lautlosen Zeit bis zum Erkennen von Stille. | Microphone | ||
Gibt an, ob die Audio-Codec-Funktion zur Echounterdrückung verwendet werden soll. | Microphone | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object | ||
Überprüft, ob bei diesem EventDispatcher-Objekt oder bei einem seiner Vorgänger ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist. | EventDispatcher |
activityLevel | Eigenschaft |
activityLevel:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die über das Mikrofon ermittelte Soundmenge. Die Werte liegen zwischen 0 (kein Sound) und 100 (sehr lauter Sound). Mithilfe des Werts dieser Eigenschaft können Sie einen geeigneten Wert zum Übergeben für die Methode Microphone.setSilenceLevel()
ermitteln.
Wenn die muted
-Eigenschaft des Mikrofons den Wert true
hat, ist der Wert dieser Eigenschaft immer -1.
Implementierung
public function get activityLevel():Number
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
codec | Eigenschaft |
codec:String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Der für die Audiokomprimierung zu verwendende Codec. Verfügbare Codecs sind Nellymoser (Standardeinstellung) und Speex. Die Enum-Klasse SoundCodec
enthält die verschiedenen Werte, die für die codec
-Eigenschaft gültig sind.
Wenn Sie den Nellymoser-Codec verwenden, können Sie die Samplerate über Microphone.rate()
festlegen. Wenn Sie den Speex-Codec verwenden, ist die Samplerate auf 16 kHz eingestellt.
Speex enthält eine Sprachaktivitätserkennung (VAD) und reduziert die Bandbreite automatisch, wenn keine Sprache erkannt wird. Wenn Sie den Speex-Codec verwenden, empfiehlt Adobe, die Abschaltschwelle (Silence-Level) auf 0 zu setzen. Verwenden Sie zum Einstellen der Abschaltschwelle die Microphone.setSilenceLevel()
-Methode.
Implementierung
public function get codec():String
public function set codec(value:String):void
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
enableVAD | Eigenschaft |
enableVAD:Boolean
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Aktiviert die Speex-Sprechpausenerkennung.
Implementierung
public function get enableVAD():Boolean
public function set enableVAD(value:Boolean):void
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
encodeQuality | Eigenschaft |
encodeQuality:int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Die kodierte Sprachqualität, wenn der Speex-Codec verwendet wird. Mögliche Werte sind 0 bis 10. Der Standardwert ist 6. Höhere Werte bedeuten eine höhere Qualität, erfordern aber auch mehr Bandbreite (wie in der folgenden Tabelle gezeigt). Die aufgelisteten Bitratenwerte sind Nettobitraten und enthalten keinen Paketierungsaufwand.
Qualitätswert | Erforderliche Bitrate (Kilobit pro Sekunde) |
---|---|
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 |
Implementierung
public function get encodeQuality():int
public function set encodeQuality(value:int):void
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
enhancedOptions | Eigenschaft |
enhancedOptions:MicrophoneEnhancedOptions
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.3, AIR 2.7 |
Steuert erweiterte Mikrofonoptionen. Weitere Informationen finden Sie in der Beschreibung der MicrophoneEnhancedOptions
-Klasse. Diese Eigenschaft wird für nicht erweiterte Microphone-Instanzen ignoriert.
Implementierung
public function get enhancedOptions():MicrophoneEnhancedOptions
public function set enhancedOptions(value:MicrophoneEnhancedOptions):void
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
framesPerPacket | Eigenschaft |
framesPerPacket:int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Anzahl der Speex-Sprachframes, die in einem Paket (Meldung) übertragen werden. Jeder Frame hat eine Länge von 20 ms. Der Standardwert ist zwei Frames pro Paket.
Je mehr Speex-Frames in einer Meldung enthalten sind, desto niedriger ist die erforderliche Bandbreite, aber desto länger ist die Verzögerung beim Senden der Meldung. Weniger Speex-Frames erhöhen die erforderliche Bandbreite, reduzieren aber Verzögerungen.
Implementierung
public function get framesPerPacket():int
public function set framesPerPacket(value:int):void
gain | Eigenschaft |
gain:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Betrag, um den das Mikrofon das Signal verstärkt. Die zulässigen Werte liegen zwischen 0 und 100. Der Standardwert ist 50.
Implementierung
public function get gain():Number
public function set gain(value:Number):void
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
index | Eigenschaft |
index:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Der Index des Mikrofons, der in dem durch Microphone.names
zurückgegebenen Array angegeben ist.
Implementierung
public function get index():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
isSupported | Eigenschaft |
isSupported:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Die isSupported
-Eigenschaft hat den Wert true
, wenn die Microphone-Klasse von der aktuellen Plattform unterstützt wird, andernfalls hat sie den Wert false
.
Implementierung
public static function get isSupported():Boolean
muted | Eigenschaft |
muted:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt an, ob der Benutzer den Zugriff auf das Mikrofon verweigert (true
) oder gewährt hat (false
). Wenn sich dieser Wert ändert, wird ein status
-Ereignis ausgelöst. Weitere Informationen finden Sie unter Microphone.getMicrophone()
.
Implementierung
public function get muted():Boolean
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
name | Eigenschaft |
names | Eigenschaft |
names:Array
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Ein Array mit den Namen aller verfügbaren Soundaufnahmegeräte. Die Namen werden zurückgegeben, ohne dass das Flash Player-Bedienfeld für die Zugriffsschutzeinstellungen für Benutzer angezeigt werden muss. Mit diesem Array wird über die Microphone.names.length
-Eigenschaft der auf null basierende Index jedes Soundaufnahmegeräts sowie die Anzahl der Soundaufnahmegeräte im System angegeben. Weitere Informationen finden Sie im Abschnitt zur Array-Klasse.
Zum Aufrufen der Microphone.names
-Eigenschaft ist eine genaue Überprüfung der Hardware erforderlich; daher kann das Erstellen des Arrays einige Sekunden dauern. In den meisten Fällen können Sie das Standardmikrofon verwenden.
Hinweis: Um den Namen des aktuellen Mikrofons festzustellen, verwenden Sie die name
-Eigenschaft.
Implementierung
public static function get names():Array
Verwandte API-Elemente
noiseSuppressionLevel | Eigenschaft |
noiseSuppressionLevel:int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.1, AIR 2 |
Maximale Dämpfung des Rauschens in dB (negative Zahl), die für den Speex-Encoder verwendet wird. Wenn aktiviert, wird Rauschunterdrückung auf den durch das Mikrofon erfassten Ton angewendet, bevor die Speex-Komprimierung erfolgt. Mit der Einstellung 0 wird die Rauschunterdrückung deaktiviert. Rauschunterdrückung ist standardmäßig mit einer maximalen Dämpfung von -30 dB aktiviert. Wird bei Auswahl des Nellymoser-Codecs ignoriert.
Implementierung
public function get noiseSuppressionLevel():int
public function set noiseSuppressionLevel(value:int):void
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
permissionStatus | Eigenschaft |
rate | Eigenschaft |
rate:int
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die Abtastrate (in kHz), mit der das Mikrofon Sound aufnimmt. Akzeptable Werte sind 5, 8, 11, 22 und 44. Der Standardwert ist 8 kHz, sofern das Soundaufnahmegerät diesen Wert unterstützt. Andernfalls gilt als Standardwert die nächste verfügbare Aufnahmestufe über 8 kHz, die auf dem Soundaufnahmegerät unterstützt wird, gewöhnlich 11 kHz.
Hinweis: Die tatsächliche Rate unterscheidet sich etwas vom rate
-Wert, wie in der folgenden Tabelle zu sehen ist:
rate -Wert | Tatsächliche Frequenz |
---|---|
44 | 44.100 Hz |
22 | 22.050 Hz |
11 | 11.025 Hz |
8 | 8.000 Hz |
5 | 5.512 Hz |
Implementierung
public function get rate():int
public function set rate(value:int):void
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
silenceLevel | Eigenschaft |
silenceLevel:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die erforderliche Soundmenge zum Aktivieren des Mikrofons und zum Auslösen des activity
-Ereignisses. Der Standardwert ist 10.
Implementierung
public function get silenceLevel():Number
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
silenceTimeout | Eigenschaft |
silenceTimeout:int
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Die Zeit in Millisekunden zwischen dem Zeitpunkt, zu dem mit dem Mikrofon kein Sound mehr erfasst wird, und dem Zeitpunkt, zu dem das activity
-Ereignis ausgelöst wird. Der Standardwert ist 2000 (2 Sekunden).
Um diesen Wert einzustellen, verwenden Sie die Microphone.setSilenceLevel()
-Methode.
Implementierung
public function get silenceTimeout():int
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
soundTransform | Eigenschaft |
soundTransform:flash.media:SoundTransform
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Steuert den Sound dieses Microphone-Objekts im Loopback-Modus.
Implementierung
public function get soundTransform():flash.media:SoundTransform
public function set soundTransform(value:flash.media:SoundTransform):void
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
useEchoSuppression | Eigenschaft |
useEchoSuppression:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Weist den Wert true
auf, wenn die Echounterdrückung aktiviert ist, andernfalls false
. Der Standardwert ist false
, es sei denn, der Benutzer hat im Flash Player-Bedienfeld für die Mikrofoneinstellungen die Option „Echo reduzieren“ gewählt.
Implementierung
public function get useEchoSuppression():Boolean
Verwandte API-Elemente
getEnhancedMicrophone | () | Methode |
public static function getEnhancedMicrophone(index:int = -1):Microphone
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10.3, AIR 2.7 |
Gibt einen Verweis auf ein erweitertes Microphone-Objekt zurück, das akustische Echokompensation ausführen kann. Verwenden Sie die akustische Echokompensation, um Audio/Video-Chat-Anwendungen zu erstellen, für die keine Headsets erforderlich sind.
Der index
-Parameter für die Microphone.getEnhancedMicrophone()
-Methode und die Microphone.getMicrophone()
-Methode arbeitet auf identische Weise.
Um diese Methode unter Android zu verwenden, fügen Sie im Andwendungsdeskriptür unter „Android-Manifestzusätze“ die Berechtigung MODIFY_AUDIO_SETTINGS
hinzu.
Wichtig: Zu jedem beliebigen Zeitpunkt haben Sie immer nur eine einzelne Instanz eines erweiterten Mikrofongeräts. Alle anderen Microphone-Instanzen beenden die Bereitstellung von Audiodaten und erhalten ein StatusEvent
-Objekt mit der code
-Eigenschaft Microphone.Unavailable
. Wenn das erweiterte Audio nicht initialisiert werden kann, geben Aufrufe dieser Methode null
zurück, das Festlegen eines Werts für Microphone.enhancedOptions
hat keine Auswirkungen und alle vorhandenen Microphone-Instanzen funktionieren wie zuvor.
Um ein erweitertes Microphone-Objekt zu konfigurieren, legen Sie die Microphone.enhancedOptions
-Eigenschaft fest. Der folgende Code verwendet ein erweitertes Microphone-Objekt und Vollduplex-Echokompensation in einem lokalen Test:
var mic:Microphone = Microphone.getEnhancedMicrophone(); var options:MicrophoneEnhancedOptions = new MicrophoneEnhancedOptions(); options.mode = MicrophoneEnhancedMode.FULL_DUPLEX; mic.enhancedOptions = options; mic.setLoopBack(true);
Die setUseEchoSuppression()
-Methode wird ignoriert, wenn die akustische Echokompensation verwendet wird.
Wenn eine SWF-Datei versucht, auf das von Microphone.getEnhancedMicrophone()
zurückgegebene Objekt zuzugreifen – zum Beispiel, wenn Sie NetStream.attachAudio()
aufrufen – zeigt Flash Player ein Dialogfeld zum Datenschutz an, in dem der Benutzer den Zugriff auf das Mikrofon zulassen oder verweigern kann. (Achten Sie darauf, dass die Bühnengröße mindestens 215 x 138 Pixel beträgt. Dies ist die Mindestgröße, die Flash Player für die Anzeige des Dialogfelds benötigt.)
Parameter
index:int (default = -1 ) — Der Indexwert des Mikrofons.
|
Microphone — Ein Verweis auf ein Mikrofon-Objekt zur Aufnahme von Audiodaten. Wenn das erweiterte Audio nicht initialisiert werden kann, wird null zurückgegeben.
|
Verwandte API-Elemente
getMicrophone | () | Methode |
public static function getMicrophone(index:int = -1):Microphone
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt einen Verweis auf ein Mikrofon-Objekt zur Aufnahme von Audiodaten zurück. Um mit dem Aufzeichnen des Audios zu beginnen, müssen Sie das Microphone-Objekt mit einem NetStream-Objekt verknüpfen (siehe NetStream.attachAudio()
).
Mehrere Aufrufe von Microphone.getMicrophone()
verweisen auf dasselbe Mikrofon. Falls ein Programmcode also die Zeilen mic1 = Microphone.getMicrophone()
und mic2 = Microphone.getMicrophone()
enthält, verweisen mic1
und mic2
auf dasselbe (Standard-)Mikrofon.
Im Allgemeinen sollten Sie keinen Wert für index
übergeben. Verwenden Sie einfach air.Microphone.getMicrophone()
, um einen Verweis auf das Standardmikrofon zurückzugeben. Im Abschnitt „Mikrofoneinstellungen“ im Einstellungsbedienfeld von Flash Player kann der Benutzer das Standardmikrofon angeben, das die Anwendung verwenden soll. (Der Benutzer ruft die Einstellungen von Flash Player auf, indem er mit der rechten Maustaste auf den im Webbrowser ausgeführten Flash Player-Inhalt klickt.) Wenn Sie einen Wert für index
übergeben, können Sie auf ein anderes als das vom Benutzer gewählte Mikrofon verweisen. In seltenen Fällen können Sie index
verwenden, beispielsweise wenn Ihre Anwendung Audiodaten von zwei Mikrofonen gleichzeitig aufnimmt. Inhalt, der in Adobe AIR ausgeführt wird, verwendet ebenfalls die Flash Player-Einstellung für das Standardmikrofon.
Verwenden Sie die Microphone.index
-Eigenschaft, um den Indexwert des aktuellen Microphone-Objekts abzurufen. Sie können diesen Wert dann an andere Methoden der Microphone-Klasse übergeben.
Wenn eine SWF-Datei versucht, auf das von Microphone.getMicrophone()
zurückgegebene Objekt zuzugreifen (wenn Sie beispielsweise NetStream.attachAudio()
aufrufen), wird in Flash Player ein Zugriffsschutz-Dialogfeld angezeigt, in dem der Benutzer den Zugriff auf das Mikrofon zulassen oder verweigern kann. (Achten Sie darauf, dass die Bühnengröße mindestens 215 x 138 Pixel beträgt. Dies ist die Mindestgröße, die Flash Player für die Anzeige des Dialogfelds benötigt.)
Wenn der Benutzer auf dieses Dialogfeld reagiert, wird ein status
-Ereignis ausgelöst, das die Antwort des Benutzers anzeigt. Sie können auch die Microphone.muted
-Eigenschaft überprüfen, um festzustellen, ob der Benutzer den Zugriff auf das Mikrofon zugelassen oder verweigert hat.
Wenn Microphone.getMicrophone()
den Wert null
zurückgibt, wird das Mikrofon entweder von einer anderen Anwendung genutzt oder im System sind keine Mikrofone installiert. Mit Microphones.names.length
können Sie feststellen, ob Mikrofone installiert sind. Mit Security.showSettings()
zeigen Sie das Flash Player-Bedienfeld für Mikrofoneinstellungen an, in dem der Benutzer das Mikrofon auswählen kann, auf das von Microphone.getMicrophone()
verwiesen wird.
Parameter
index:int (default = -1 ) — Der Indexwert des Mikrofons.
|
Microphone — Ein Verweis auf ein Mikrofon-Objekt zur Aufnahme von Audiodaten.
|
Ereignisse
status: — Wird ausgelöst, wenn der Status eines Mikrofons gemeldet wird. Wenn der Wert der code -Eigenschaft auf "Microphone.Muted" gesetzt ist, hat der Benutzer den Zugriff der SWF-Datei auf das Mikrofon verweigert. Wenn der Wert der code -Eigenschaft auf "Microphone.Unmuted" gesetzt ist, hat der Benutzer den Zugriff der SWF-Datei auf das Mikrofon gewährt.
|
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
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
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 24.0 |
Fordert Mikrofonberechtigung für die Anwendung an.
Ereignisse
PermissionStatus: — wird abgesetzt, wenn die angeforderte Berechtigung vom Benutzer gewährt/abgelehnt wird.
|
setLoopBack | () | Methode |
public function setLoopBack(state:Boolean = true):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Leitet von einem Mikrofon aufgezeichnetes Audio an die lokalen Lautsprecher.
Parameter
state:Boolean (default = true )
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
setSilenceLevel | () | Methode |
public function setSilenceLevel(silenceLevel:Number, timeout:int = -1):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Legt die minimale Eingangslautstärke fest, bei der Sound als solcher eingestuft wird und (optional) die Länge der lautlosen Zeit bis zum Erkennen von Stille.
- Wenn das Mikrofon überhaupt keinen Sound feststellen soll, legen Sie für
silenceLevel
einen Wert von 100 fest. Dasactivity
-Ereignis wird nicht ausgelöst. - Mithilfe von
Microphone.activityLevel
können Sie die Soundmenge ermitteln, die mit dem Mikrofon derzeit erkannt wird.
Speex enthält eine Sprachaktivitätserkennung (VAD) und reduziert die Bandbreite automatisch, wenn keine Sprache erkannt wird. Wenn Sie den Speex-Codec verwenden, empfiehlt Adobe, die Abschaltschwelle (Silence-Level) auf 0 zu setzen.
Aktivitätserkennung ist die Fähigkeit, anhand der Lautstärkepegel zu erkennen, dass jemand spricht. Wenn nicht gesprochen wird, kann Bandbreite gespart werden, da der zugehörige Audiostream nicht übertragen werden muss. Diese Daten können auch für visuelles Feedback verwendet werden, sodass Benutzer erkennen, dass sie (oder andere) derzeit stumm sind.
Stillewerte entsprechen unmittelbar den Aktivitätswerten. Völlige Stille entspricht dem Aktivitätswert 0. Konstante, laute Geräusche (so laut wie bei der momentanen Einstellung für die Lautstärke erfasst werden kann) entspricht einem Wert von 100. Wenn die Lautstärke genau angepasst ist, ist Ihr Aktivitätswert geringer als der Stillewert, wenn Sie nicht sprechen. Wenn Sie sprechen, ist der Aktivitätswert höher als der Stillewert.
Diese Methode ähnelt Camera.setMotionLevel()
. Mit beiden Methoden wird angegeben, zu welchem Zeitpunkt das activity
-Ereignis ausgelöst werden soll. Diese Methoden haben jedoch deutlich unterschiedliche Auswirkungen auf das Veröffentlichen von Streams:
Camera.setMotionLevel()
ist dazu bestimmt, Bewegung festzustellen und hat keinen Einfluss auf die Bandbreitenauslastung. Auch wenn ein Videostream keine Bewegung feststellt, werden weiterhin Videodaten gesendet.Microphone.setSilenceLevel()
dient zur Optimierung der Bandbreite. Wenn ein Audiostream als lautlos eingestuft wird, werden keine Audiodaten gesendet. Stattdessen wird eine Meldung gesendet, um den Beginn der Inaktivität (Stille) anzuzeigen.
Parameter
silenceLevel:Number — Die erforderliche Soundmenge zum Aktivieren des Mikrofons und zum Auslösen des activity -Ereignisses. Die zulässigen Werte liegen zwischen 0 und 100.
| |
timeout:int (default = -1 ) — Die Zeit in Millisekunden, die ohne Aktivität vergehen muss, bevor in Flash Player oder Adobe AIR kein Sound mehr festgestellt und das dispatch -Ereignis ausgelöst wird. Der Standardwert ist 2000 (2 Sekunden). (Hinweis: Der in der Syntax angezeigte Standardwert -1 ist ein interner Wert in Flash Player oder Adobe AIR zur Verwendung des Werts 2000.)
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
setUseEchoSuppression | () | Methode |
public function setUseEchoSuppression(useEchoSuppression:Boolean):void
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt an, ob die Audio-Codec-Funktion zur Echounterdrückung verwendet werden soll. Der Standardwert ist false
, es sei denn, der Benutzer hat im Flash Player-Bedienfeld für die Mikrofoneinstellungen die Option „Echo reduzieren“ gewählt.
Durch die Echounterdrückung sollen die Auswirkungen von Rückkopplungen unterdrückt werden, die hervorgerufen werden, wenn Sounds aus dem Lautsprecher über das Mikrofon im selben System empfangen werden. (Dies unterscheidet sich von der akustischen Echokompensation, bei der die Rückkopplungen vollständig entfernt werden. Die setUseEchoSuppression()
-Methode wird ignoriert, wenn Sie die getEnhancedMicrophone()
-Methode aufrufen, um die akustische Echokompensation zu verwenden.)
Generell empfiehlt sich die Echounterdrückung, wenn der erfasste Sound über Lautsprecher und nicht über Kopfhörer wiedergegeben wird. Wenn Benutzer bei einer SWF-Datei das Soundausgabegerät angeben können, sollten Sie Microphone.setUseEchoSuppression(true)
aufrufen, wenn angegeben wird, dass Lautsprecher und das Mikrofon verwendet werden sollen.
Benutzer können diese Einstellungen auch im Flash Player-Bedienfeld für die Mikrofoneinstellungen anpassen.
Parameter
useEchoSuppression:Boolean — Ein boolescher Wert, der angibt, ob Echokompensation verwendet werden soll (true ) oder nicht (false ).
|
Auslöser
PermissionError — Die Anwendung verfügt nicht über die Berechtigung zur Verwendung des Mikrofons.
|
Verwandte API-Elemente
Security.showSettings()
wird das Dialogfeld „Flash Player“ angezeigt, mit dem die Berechtigung für den Zugriff auf das Mikrofon des Benutzers angefordert wird. Durch das Aufrufen von setLoopBack(true)
wird der Input an die lokalen Lautsprecher umgeleitet, sodass Sie den Sound hören können, während das Beispiel ausgeführt wird.
Zwei Listener reagieren auf activity
- und status
-Ereignisse. Das activity
-Ereignis wird am Anfang und Ende (falls vorhanden) der Sitzung ausgelöst und von der Methode activityHandler()
erfasst, die Ereignisverarbeitungsinformationen verfolgt. Das Ereignis status
wird ausgelöst, wenn Statusinformationen vom verknüpften Microphone-Objekt übermittelt werden; es wird mithilfe der statusHandler()
-Methode erfasst und verfolgt.
Hinweis: Dieses Beispiel kann nur dann korrekt nachvollzogen werden, wenn ein Mikrofon mit dem Computer verbunden ist.
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, 10:04 AM Z