Paket | flash.events |
Klasse | public class SampleDataEvent |
Vererbung | SampleDataEvent Event Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Dieses Ereignis hat zwei Verwendungen:
- Um dynamisch generierte Audiodaten für ein Sound-Objekt bereitzustellen
- Um Audiodaten für ein Microphone-Objekt abzurufen
Dynamisches Generieren von Audio mit dem Sound-Objekt Verwenden Sie das sampleData
-Ereignis, um dynamisch generiertes Audio abzuspielen. In dieser Umgebung enthält das Sound-Objekt keine Sounddaten an sich. Es fungiert stattdessen als Socket für Sounddaten, die zum Objekt gestreamt werden. Das Streamen erfolgt mittels einer Funktion, die Sie dem sampleData
Ereignis zuweisen.
Sie verwenden in Ihrer Funktion die ByteArray.writeFloat()
-Methode, um in die data
-Eigenschaft des Ereignisses zu schreiben, die die Beispieldaten, die Sie abspielen möchten, enthält.
Wenn ein Sound-Objekt keine MP3-Datei geladen hat und Sie seine play()
-Methode aufrufen, setzt das Objekt sampleData
-Ereignisse ab, um Soundsamples anzufordern. Das Sound-Objekt fährt während der Wiedergabe damit fort, Ereignisse abzusetzen, bis Sie keine Daten mehr bereitstellen oder bis die stop()
-Methode des SoundChannel-Objekts aufgerufen wird.
Die Wartezeit des Ereignisses unterscheidet sich von Plattform zu Plattform und kann sich in zukünftigen Versionen von Flash Player oder AIR ändern. Verlassen Sie sich nicht auf eine bestimmte Wartezeit. Berechnen Sie sie stattdessen mit ((SampleDataEvent.position/44.1) - SoundChannelObject.position)
.
Stellen Sie der data
-Eigenschaft des SampleDataEvent-Objekts zwischen 2048 und 8192 Samples bereit. Um die beste Leistung zu erzielen, stellen Sie so viele Beispiele wie möglich zur Verfügung. Je weniger Beispiele Sie zur Verfügung stellen, desto wahrscheinlicher ist es, dass während des Abspielens Knackgeräusche und Ähnliches auftritt. Dies kann von Plattform zu Plattform unterschiedlich sein und in verschiedenen Situationen auftreten, zum Beispiel wenn die Browsergröße verändert wird. Wenn Sie Code schreiben, der mit nur 2.048 Beispielen auf einer Plattform funktioniert, kann es vorkommen, dass derselbe Code auf einer anderen Plattform nicht so gut funktioniert. Wenn Sie die geringst mögliche Wartezeit benötigen, überlegen Sie sich, ob Sie die Menge der Daten vom Benutzer auswählen lassen.
Wenn Sie weniger als 2.048 Samples bereitstellen, spielt das Sound-Objekt die verbleibenden Samples ab und stoppt dann die Wiedergabe, als wäre das Ende der Sounddatei erreicht, und generiert ein complete
-Ereignis.
Sie können die extract()
-Methode eines Sound-Objekts verwenden, um seine Sounddaten zu extrahieren, die Sie dann in den dynamischen Stream für die Wiedergabe schreiben können.
Wenn Sie das sampleData
-Ereignis mit einem Sound-Objekt verwenden, sind als weitere Sound-Methoden nur noch extract()
und play()
aktiviert. Das Aufrufen anderer Methoden oder Eigenschaften verursacht eine Ausnahme aufgrund eines ungültigen Aufrufs („invalid call“). Alle Methoden und Eigenschaften des SoundChannel-Objekts sind nach wie vor aktiviert.
Erfassen von Mikrofonaudio Verwenden Sie das sampleData
Ereignis, um Audiodaten von einem Mikrofon zu erfassen. Wenn Sie einen Ereignis-Listener für das sampleData
-Ereignis hinzufügen, setzt das Microphone-Objekt das Ereignis ab, sobald Audiosamples verfügbar sind.
Verwenden Sie in der Ereignisprozedurfunktion die ByteArray.readFloat()
-Methode, um die data
-Eigenschaft des Ereignisses zu lesen, die die Sampledaten enthält. Das Ereignis enthält mehrere Samples, deshalb sollten Sie eine while
-Schleife verwenden, um die verfügbaren Daten zu lesen:
var soundBytes:ByteArray = new ByteArray(); while(event.data.bytesAvailable) { var sample:Number = event.data.readFloat(); soundBytes.writeFloat(sample); }
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
bubbles : Boolean [schreibgeschützt]
Gibt an, ob es sich bei dem Ereignis um ein Bubbling-Ereignis handelt. | Event | ||
cancelable : Boolean [schreibgeschützt]
Gibt an, ob das mit dem Ereignis verknüpfte Verhalten verhindert werden kann. | Event | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
currentTarget : Object [schreibgeschützt]
Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. | Event | ||
data : ByteArray
Die Daten im Audiostream. | SampleDataEvent | ||
eventPhase : uint [schreibgeschützt]
Die aktuelle Phase im Ereignisablauf. | Event | ||
position : Number
Die Position der Daten im Audiostream. | SampleDataEvent | ||
target : Object [schreibgeschützt]
Das Ereignis-Ziel. | Event | ||
type : String [schreibgeschützt]
Der Ereignistyp. | Event |
Methode | Definiert von | ||
---|---|---|---|
SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Erstellt ein Ereignisobjekt, das Informationen über Audiodatenereignisse enthält. | SampleDataEvent | ||
[override]
Erstellt eine Kopie des SampleDataEvent-Objekts und stellt den Wert aller Eigenschaften so ein, dass sie den Werten des Originals entsprechen. | SampleDataEvent | ||
Eine Dienstprogrammfunktion zur Implementierung der toString()-Methode in benutzerdefinierten ActionScript 3.0 Event-Klassen. | Event | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Überprüft, ob die preventDefault()-Methode bei dem Ereignis aufgerufen wurde. | Event | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Bricht das Standardverhalten eines Ereignisses ab, wenn dieses Verhalten abgebrochen werden kann. | Event | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Verhindert die Verarbeitung von Ereignis-Listenern im aktuellen Knoten und in Knoten, die dem aktuellen Knoten im Ereignisablauf nachfolgen. | Event | ||
Verhindert die Verarbeitung von Ereignis-Listenern in Knoten, die dem aktuellen Knoten im Ereignisablauf nachfolgen. | Event | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
[override]
Gibt einen String zurück, der alle Eigenschaften des SampleDataEvent-Objekts enthält. | SampleDataEvent | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
Konstante | Definiert von | ||
---|---|---|---|
SAMPLE_DATA : String = "sampleData" [statisch]
Definiert den Wert der type-Eigenschaft eines SampleDataEvent-Ereignisobjekts. | SampleDataEvent |
data | Eigenschaft |
position | Eigenschaft |
SampleDataEvent | () | Konstruktor |
public function SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Erstellt ein Ereignisobjekt, das Informationen über Audiodatenereignisse enthält. Ereignisobjekte werden Ereignis-Listenern als Parameter übergeben.
Parametertype:String — Der Ereignistyp. Dieser Wert lautet Event.SAMPLE_DATA .
| |
bubbles:Boolean (default = false ) — Bestimmt, ob das Ereignisobjekt an der Bubbling-Phase des Ereignisablaufs teilnimmt.
| |
cancelable:Boolean (default = false ) — Bestimmt, ob das Ereignisobjekt abgebrochen werden kann.
| |
theposition:Number (default = 0 ) — Die Position der Daten im Audiostream.
| |
thedata:ByteArray (default = null ) — Ein Bytearray mit Daten.
|
clone | () | Methode |
override public function clone():Event
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Erstellt eine Kopie des SampleDataEvent-Objekts und stellt den Wert aller Eigenschaften so ein, dass sie den Werten des Originals entsprechen.
RückgabewerteEvent — Ein neues SampleDataEvent-Objekt mit Eigenschaftswerten, die denen des Originals entsprechen.
|
toString | () | Methode |
override public function toString():String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Gibt einen String zurück, der alle Eigenschaften des SampleDataEvent-Objekts enthält. Der String liegt im folgenden Format vor:
[SampleDataEvent type=Wert bubbles=Wert cancelable=Wert theposition=Wert thedata=Wert]
String — Ein String, der alle Eigenschaften des SampleDataEvent -Objekts enthält.
|
SAMPLE_DATA | Konstante |
public static const SAMPLE_DATA:String = "sampleData"
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | Flash Player 10, AIR 1.5 |
Definiert den Wert der type
-Eigenschaft eines SampleDataEvent
-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
Eigenschaft | Wert |
---|---|
bubbles | false |
cancelable | false . Es gibt kein Standardverhalten, das abgebrochen werden kann. |
position | Der Speicherort, an dem die Audiodaten bereitgestellt sind. |
Verwandte API-Elemente
var mySound:Sound = new Sound(); function sineWaveGenerator(event:SampleDataEvent):void { for ( var c:int=0; c<8192; c++ ) { event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25); event.data.writeFloat(Math.sin((Number(c+event.position)/Math.PI/2))*0.25); } } mySound.addEventListener(SampleDataEvent.SAMPLE_DATA,sineWaveGenerator); mySound.play();
Tue Jun 12 2018, 10:04 AM Z