Paket | flash.events |
Klass | public class SampleDataEvent |
Arv | SampleDataEvent Event Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Händelsen har två användningsområden:
- Tillhandahålla dynamiskt genererade ljuddata för ett Sound-objekt
- Hämta ljuddata för ett Microphone-objekt
Generera ljud dynamiskt med Sound-objektet Använd händelsen sampleData
för att spela ljud som genereras dynamiskt. I den här miljön innehåller Sound-objektet inte ljuddata. I stället fungerar den som en socket för ljuddata som börjar flöda till den när den funktion som du har tilldelat som hanterare av sampleData
-händelsen används.
I din funktion använder du metoden ByteArray.writeFloat()
för att skriva till händelsens data
-egenskap som innehåller de samplade data som du vill spela.
När du anropar metoden play()
för ett Sound-objekt och Sound-objektet inte har läst in en MP3-fil, börjar objektet skicka sampleData
-händelser som begär ljudsamples. Sound-objektet fortsätter att skicka händelser när ljudet spelas upp tills data inte längre tillhandahålls eller tills metoden stop()
anropas för SoundChannel-objektet.
Händelsens tidsfördröjning kan variera från plattform till plattform och kan ändras i framtida versioner av Flash Player eller AIR. Förlita dig inte på en särskild tidsfördröjning. Beräkna den stället med ((SampleDataEvent.position/44.1) - SoundChannelObject.position)
.
Tillhandahåll mellan 2 048 och 8 192 samplingar för data
-egenskapen i SampleDataEvent-objektet. Ju fler samplingar, desto bättre prestanda. Ju färre samplingar, desto mer troligt är det att störningar inträffar under uppspelning. Det här beteendet är olika på olika plattformar och inträffar i olika situationer, till exempel när webbläsare ändrar storlek. Du kan skriva kod som fungerar på en plattform när du använder 2 048 samplingar, men samma kod kanske inte fungerar lika bra när den körs på en annan plattform. Om du kräver lägsta möjliga tidsfördröjning bör du överväga att göra mängen data valbar för användaren.
Om du har färre än 2 048 samplingar spelar Sound-objektet återstående samplingar. Sedan stoppas ljudet som om slutet på ljudfilen vore nådd och en complete
-händelse genereras.
Du kan använda metoden extract()
i ett Sound-objekt för att extrahera ljuddata som du sedan kan skriva till den dynamiska strömmen för uppspelning.
När du använder en sampleData
-händelse med ett Sound-objekt är de enda Sound-metoder som aktiveras extract()
och play()
. Anrop av andra metoder eller egenskaper resulterar i undantaget ”invalid call”. Alla metoder och egenskaper för SoundChannel-objektet är fortfarande aktiverade.
Hämta mikrofonljud Använd händelsen sampleData
när du vill hämta ljuddata från en mikrofon. När du lägger till en händelseavlyssnare för sampleData
-händelsen skickar Microphone-objektet händelsen så fort ljudsamplingar är tillgängliga.
Använd ByteArray.readFloat()
-metoden i händelseavlyssnarfunktionen för att läsa händelsens data
)-egenskap som innehåller samplade data. Händelsen innehåller flera samplingar, därför bör du använda en while
-slinga för att läsa tillgängliga data:
var soundBytes:ByteArray = new ByteArray(); while(event.data.bytesAvailable) { var sample:Number = event.data.readFloat(); soundBytes.writeFloat(sample); }
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
bubbles : Boolean [skrivskyddad]
indikerar om händelsen är en bubblande händelse. | Event | ||
cancelable : Boolean [skrivskyddad]
Indikerar om beteendet som är kopplat till händelsen kan förhindras. | Event | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
currentTarget : Object [skrivskyddad]
Det objekt som aktivt behandlar Event-objektet med en händelseavlyssnare. | Event | ||
data : ByteArray
Data i ljudflödet. | SampleDataEvent | ||
eventPhase : uint [skrivskyddad]
Den nuvarande fasen i händelseflödet. | Event | ||
position : Number
Positionen på data i ljudflödet. | SampleDataEvent | ||
target : Object [skrivskyddad]
Händelsens mål. | Event | ||
type : String [skrivskyddad]
Händelsens typ. | Event |
Metod | Definieras med | ||
---|---|---|---|
SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Skapar ett nytt händelseobjekt som innehåller information om ljuddatahändelser. | SampleDataEvent | ||
[åsidosätt]
Skapar en kopia av SampleDataEvent-objektet och ställer in värdet för alla egenskaper så att de matchar originalets egenskaper. | SampleDataEvent | ||
Ett verktyg som används för att implementera metoden toString() i de anpassade klasserna ActionScript 3.0. | Event | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Kontrollerar om preventDefault()-metoden har anropats för händelsen. | Event | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Avbryter en händelses standardbeteende om det beteendet kan avbrytas. | Event | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Förhindrar behandling av händelsehanterare i den aktuella noden och alla noder som följer den aktuella noden i händelseflödet. | Event | ||
Förhindrar behandling av händelsehanterare i noder som följer den aktuella noden i händelseflödet. | Event | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
[åsidosätt]
Returnerar en sträng som innehåller alla egenskaper i SampleDataEvent-objektet. | SampleDataEvent | ||
Returnerar det angivna objektets primitiva värde. | Object |
Konstant | Definieras med | ||
---|---|---|---|
SAMPLE_DATA : String = "sampleData" [statisk]
Definierar värdet på type-egenskapen för ett SampleDataEvent-händelseobjekt. | SampleDataEvent |
data | egenskap |
position | egenskap |
SampleDataEvent | () | Konstruktor |
public function SampleDataEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, theposition:Number = 0, thedata:ByteArray = null)
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Skapar ett nytt händelseobjekt som innehåller information om ljuddatahändelser. Event-objekt skickas som parametrar till händelseavlyssnare.
Parametrartype:String — Händelsens typ. Värdet är: Event.SAMPLE_DATA .
| |
bubbles:Boolean (default = false ) — Bestämmer om Event-objektet deltar i bubblingssteget av händelseflödet.
| |
cancelable:Boolean (default = false ) — Avgör om Event-objektet kan avbrytas.
| |
theposition:Number (default = 0 ) — Positionen på data i ljudflödet.
| |
thedata:ByteArray (default = null ) — En byte-array av data.
|
clone | () | metod |
override public function clone():Event
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Skapar en kopia av SampleDataEvent-objektet och ställer in värdet för alla egenskaper så att de matchar originalets egenskaper.
ReturnerarEvent — Ett nytt SampleDataEvent-objekt med egenskapsvärden som matchar originalet.
|
toString | () | metod |
override public function toString():String
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Returnerar en sträng som innehåller alla egenskaper i SampleDataEvent-objektet. Strängen är i följande format:
[SampleDataEvent type=värde bubbles=värde cancelable=värde theposition=värde thedata=värde]
String — En sträng som innehåller alla SampleDataEvent -objektets egenskaper.
|
SAMPLE_DATA | Konstant |
public static const SAMPLE_DATA:String = "sampleData"
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | Flash Player 10, AIR 1.5 |
Definierar värdet för ett SampleDataEvent
-händelseobjekts type
-egenskap.
Den här händelsen har följande egenskaper:
Egenskap | Värde |
---|---|
bubbles | false |
cancelable | false ; det finns inget standardbeteende att avbryta. |
position | Platsen som ljuddata kommer ifrån. |
Relaterade API-element
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, 01:40 PM Z