Pacchetto | flash.media |
Classe | public class Sound |
Ereditarietà | Sound EventDispatcher Object |
Sottoclassi | SoundAsset |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
In Flash Player 1.5 e versioni successive e in AIR 1.5 e versioni successive, potete utilizzare questa classe anche per le operazioni con l'audio generato dinamicamente. In questo caso, Flash Player utilizza l'oggetto Sound che assegnate a un gestore di eventi sampleData
per il polling dei dati audio. Il suono viene riprodotto così come viene recuperato da un oggetto ByteArray popolato con dati audio. Potete utilizzare Sound.extract()
per estrarre dati audio da un oggetto Sound, quindi modificarlo prima di reinserirlo nel flusso per la riproduzione.
Per controllare l'audio incorporato in un file SWF, utilizzate le proprietà della classe SoundMixer.
Nota: l'API Sound di ActionScript 3.0 è diversa rispetto a quella di ActionScript 2.0. In ActionScript 3.0 non è possibile scegliere gli oggetti Sound e ordinarli gerarchicamente per controllarne le proprietà.
Quando utilizzate questa classe, prendete in considerazione il modello di sicurezza seguente:
- Il caricamento e la riproduzione audio non sono consentiti se il file che effettua la chiamata si trova in una sandbox di rete mentre il file audio da caricare è locale.
- Per impostazione predefinita, il caricamento e la riproduzione audio non sono consentiti se il file che effettua la chiamata è locale e cerca di caricare e riprodurre un suono remoto. Per consentire questo tipo di accesso, un utente deve accordare un permesso esplicito.
- Alcune operazioni associate all'audio sono soggette a limitazioni. Per un file di un altro dominio non è possibile accedere ai dati dell'audio caricato, a meno che non venga implementato un file di criteri validi per domini diversi. Le API associate all'audio soggette a questa limitazione sono
Sound.id3
,SoundMixer.computeSpectrum()
,SoundMixer.bufferTime
e la classeSoundTransform
.
Tuttavia, in Adobe AIR, il contenuto della funzione di sicurezza sandbox dell'applicazione
(contenuto installato con l'applicazione AIR) non è interessato da queste limitazioni di sicurezza.
Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .
Altri esempi
Riproduzione dell'audio
Controllo del volume e del panning audio
Operazioni con i metadati audio
Accesso ai dati audio originari
Esempio audio: Lettore Podcast
Altre informazioni
Nozioni fondamentali sull'architettura audio
Operazioni con l'audio incorporato
Operazioni con l'audio in streaming
Uso dell'audio generato dinamicamente
Considerazioni sulla sicurezza durante il caricamento e la riproduzione dell'audio
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
bytesLoaded : uint [sola lettura]
Restituisce il numero di byte attualmente disponibili in questo oggetto Sound. | Sound | ||
bytesTotal : int [sola lettura]
Restituisce il numero totale di byte dell'oggetto Sound. | Sound | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
id3 : ID3Info [sola lettura]
Fornisce l'accesso ai metadati contenuti in un file MP3. | Sound | ||
isBuffering : Boolean [sola lettura]
Restituisce lo stato di bufferizzazione dei file MP3 esterni. | Sound | ||
isURLInaccessible : Boolean [sola lettura]
Indica se la proprietà Sound.url è stata troncata. | Sound | ||
length : Number [sola lettura]
La lunghezza in millisecondi del file audio corrente. | Sound | ||
url : String [sola lettura]
L'URL da cui è stato caricato l'audio. | Sound |
Metodo | Definito da | ||
---|---|---|---|
Crea un nuovo oggetto Sound. | Sound | ||
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 | ||
Interrompe lo streaming e provoca l'arresto di tutte le operazioni di scaricamento dati. | Sound | ||
Invia un evento nel flusso di eventi. | EventDispatcher | ||
Estrae dati audio non elaborati da un oggetto Sound. | Sound | ||
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 | ||
Avvia il caricamento di un file MP3 esterno dall'URL specificato. | Sound | ||
Carica dati audio MP3 da un oggetto ByteArray a un oggetto Sound. | Sound | ||
loadPCMFromByteArray(bytes:ByteArray, samples:uint, format:String = "float", stereo:Boolean = true, sampleRate:Number = 44100.0):void
Carica dati audio PCM 32-bit a virgola mobile da un oggetto ByteArray a un oggetto Sound. | Sound | ||
play(startTime:Number = 0, loops:int = 0, sndTransform:flash.media:SoundTransform = null):SoundChannel
Genera un nuovo oggetto SoundChannel per la riproduzione dell'audio. | Sound | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Rimuove un listener dall'oggetto EventDispatcher. | EventDispatcher | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
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 |
Evento | Riepilogo | Definito da | ||
---|---|---|---|---|
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR ottiene lo stato di attivazione del sistema operativo ed entra nello stato attivo. | EventDispatcher | |||
Inviato quando i dati sono stati caricati correttamente. | Sound | |||
[evento di trasmissione] Inviato quando Flash Player o l'applicazione AIR perde l'attivazione del sistema operativo e sta entrando nello stato inattivo. | EventDispatcher | |||
Inviato da un oggetto Sound quando sono disponibili dati ID3 per il file audio MP3. | Sound | |||
Inviato quando si verifica un errore di input/output che impedisce l'operazione di caricamento. | Sound | |||
Inviato quando inizia un'operazione di caricamento. | Sound | |||
Inviato quando vengono ricevuti i dati nel corso di un'operazione di caricamento. | Sound | |||
Inviato quando il runtime richiede nuovi dati audio. | Sound |
bytesLoaded | proprietà |
bytesLoaded:uint
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Restituisce il numero di byte attualmente disponibili in questo oggetto Sound. Questa proprietà generalmente è utile solo per i file caricati dall'esterno.
Implementazione
public function get bytesLoaded():uint
bytesTotal | proprietà |
id3 | proprietà |
id3:ID3Info
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Fornisce l'accesso ai metadati contenuti in un file MP3.
I file audio MP3 possono contenere i tag ID3, che forniscono i metadati relativi a un file. Se un file audio MP3 caricato con il metodo Sound.load()
contiene dei tag ID3, è possibile interrogare tali proprietà. Sono supportati solo i tag ID3 che utilizzano il set di caratteri UTF-8.
Flash Player 9 e versioni successive e AIR supportano i tag ID3 2.0, nello specifico 2.3 e 2.4. Le tabelle seguenti contengono l'elenco dei tag ID3 2.0 standard e del tipo di contenuto rappresentato dai tag. La proprietà Sound.id3
consente di accedere a questi tag tramite il formato my_sound.id3.COMM
, my_sound.id3.TIME
e così via. La prima tabella descrive i tag a cui si può accedere tramite il nome di proprietà ID3 2.0 o ActionScript. La seconda tabella descrive i tag ID3 supportati ma privi di proprietà predefinite in ActionScript.
Tag ID3 2.0 | Proprietà della classe Sound corrispondente |
COMM | Sound.id3.comment |
TALB | Sound.id3.album |
TCON | Sound.id3.genre |
TIT2 | Sound.id3.songName |
TPE1 | Sound.id3.artist |
TRCK | Sound.id3.track |
TYER | Sound.id3.year |
La tabella seguente descrive i tag ID3 supportati ma privi di proprietà predefinite nella classe Sound. Per accedere a questi tag, chiamare mySound.id3.TFLT
, mySound.id3.TIME
e così via. NOTA: nessuno di questi tag è supportato in Flash Lite 4.
Proprietà | Descrizione |
TFLT | Tipo di file |
TIME | Tempo |
TIT1 | Descrizione del gruppo del contenuto |
TIT2 | Titolo/nome canzone/descrizione del contenuto |
TIT3 | Sottotitolo/approfondimento della descrizione |
TKEY | Tonalità iniziale |
TLAN | Lingue |
TLEN | Lunghezza |
TMED | Tipo di supporto |
TOAL | Titolo originale album/film/spettacolo |
TOFN | Nome di file originale |
TOLY | Parolieri originali |
TOPE | Artisti/esecutori originali |
TORY | Anno di pubblicazione originale |
TOWN | Proprietario del file/licenziatario |
TPE1 | Esecutori/solisti principali |
TPE1 | Band/orchestra/accompagnamento |
TPE3 | Direttore d'orchestra/approfondimento dell'esecutore |
TPE4 | Interpretato, remissato o modificato in altro modo da |
TPOS | Parte di un set |
TPUB | Editore |
TRCK | Numero della traccia/posizione nel set |
TRDA | Date della registrazione |
TRSN | Nome della Web radio |
TRSO | Proprietario della Web radio |
TSIZ | Dimensione |
TSRC | ISRC (International Standard Recording Code) |
TSSE | Software/hardware e impostazioni utilizzate per la codifica |
TYER | Anno |
WXXX | Collegamento URL |
Quando utilizzate questa proprietà, tenete presente il modello di sicurezza di Flash Player:
- La proprietà
id3
di un oggetto Sound è sempre consentita per i file SWF che si trovano nella stessa funzione di sicurezza sandbox del file audio. Per i file di altre sandbox esistono invece dei controlli di sicurezza. - Quando caricate l'audio utilizzando il metodo
load()
della classe Sound è possibile specificare un parametrocontext
, cioè un oggetto SoundLoaderContext. Se impostate la proprietàcheckPolicyFile
dell'oggetto SoundLoaderContext sutrue
, Flash Player verifica la presenza di un file di criteri per gli URL sul server da cui viene caricato l'audio. Se esiste un file di criteri che consente l'accesso dal dominio del file SWF da caricare, il file può accedere alla proprietàid3
dell'oggetto Sound; in caso contrario, non vi può accedere.
Tuttavia, in Adobe AIR, il contenuto della funzione di sicurezza sandbox dell'applicazione
(contenuto installato con l'applicazione AIR) non è interessato da queste limitazioni di sicurezza.
Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .
Implementazione
public function get id3():ID3Info
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
Nella funzione di costruzione, il file audio viene caricato, ma non è impostato per la riproduzione. In questo caso, si presume che il file si trovi nella directory SWF. Il sistema deve avere le autorizzazioni per leggere i tag ID3 di un file audio caricato. Se il file contiene informazioni ID3 e il programma ha le autorizzazioni per leggerle, viene attivato un evento Event.ID3
e la proprietà id3
del file audio viene popolata. La proprietà id3
contiene un oggetto ID3Info
con tutte le informazioni ID3.
Nel metodo id3Handler()
, i tag ID3 del file vengono memorizzati in id3
, un oggetto della classe ID3Info. Viene creata un'istanza di un campo di testo per visualizzare l'elenco dei tag ID3. Il ciclo for ripassa tutti i tag ID3 2.0 e aggiunge il nome e il valore al contenuto del campo di testo. Grazie alle proprietà delle informazioni ID3 (ID3Info
), vengono aggiunti anche i nomi dell'artista, del brano e dell'album. ActionScript 3.0 e Flash Player 9 e versioni successive supportano i tag ID3 2.0, e in particolare 2.3 e 2.4. Se si ripassano le proprietà come nel ciclo for, vengono visualizzati solo i tag ID3 2.0. Tuttavia, anche i dati delle versioni precedenti vengono memorizzati nella proprietà id3
del brano ed è possibile accedervi utilizzando le proprietà della classe di informazioni ID3. I tag per ID3 1.0 si trovano alla fine del file mentre quelli per ID3 2.0 sono all'inizio del file. Talvolta nei file possono essere presenti tag di versioni precedenti e successive nello stesso punto. Se un file è codificato sia con i tag della versione 1.0 che con quelli della versione 2.0 all'inizio e alla fine del file, il metodo id3Handler()
verrà richiamato due volte. Tale metodo leggerà per prima la versione 2.0 e quindi la versione 1.0. Se è disponibile solamente il tag ID3 1.0, allora l'informazione sarà accessibile attraverso proprietà ID3 info, quali id3.songname
. Nel caso di ID3 2.0, id3.TITS
le proprietà recupereranno il nome del brano utilizzando il nuovo tag (TITS).
Notate che nessuna gestione degli errori è stata scritta per questo esempio e nel caso in cui il contenuto ID3 sia troppo lungo, il risultato potrebbe andare oltre l'area visibile.
package { import flash.display.Sprite; import flash.media.Sound; import flash.net.URLRequest; import flash.media.ID3Info; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.Event; public class Sound_id3Example extends Sprite { private var snd:Sound = new Sound(); private var myTextField:TextField = new TextField(); public function Sound_id3Example() { snd.addEventListener(Event.ID3, id3Handler); snd.load(new URLRequest("mySound.mp3")); } private function id3Handler(event:Event):void { var id3:ID3Info = snd.id3; myTextField.autoSize = TextFieldAutoSize.LEFT; myTextField.border = true; myTextField.appendText("Received ID3 Info: \n"); for (var propName:String in id3) { myTextField.appendText(propName + " = " + id3[propName] + "\n"); } myTextField.appendText("\n" + "Artist: " + id3.artist + "\n"); myTextField.appendText("Song name: " + id3.songName + "\n"); myTextField.appendText("Album: " + id3.album + "\n\n"); this.addChild(myTextField); } } }
isBuffering | proprietà |
isBuffering:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Restituisce lo stato di bufferizzazione dei file MP3 esterni. Se il valore è true
, qualsiasi riproduzione in corso viene interrotta mentre l'oggetto attende altri dati.
Implementazione
public function get isBuffering():Boolean
isURLInaccessible | proprietà |
isURLInaccessible:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10.1, AIR 2 |
Indica se la proprietà Sound.url
è stata troncata. Quando il valore isURLInaccessible
è true
, il valore Sound.url
corrisponde solo al dominio dell'URL finale dal quale il suono è stato caricato. Ad esempio, la proprietà viene troncata se il suono viene caricato da http://www.adobe.com/assets/hello.mp3
e la proprietà Sound.url
ha il valore http://www.adobe.com
. Il valore isURLInaccessible
è true
solo quando tutte le seguenti condizioni sono presenti:
- Si è verificato un reindirizzamento HTTP durante il caricamento del file sonoro.
- Il file SWF che chiama
Sound.load()
proviene da un dominio diverso dall'URL finale del file sonoro. - Il file SWF che chiama
Sound.load()
non è autorizzato ad accedere al file sonoro. L'autorizzazione ad accedere al file sonoro viene concessa nello stesso modo dell'autorizzazione per la proprietàSound.id3
: definite un file di criteri e utilizzate la proprietàSoundLoaderContext.checkPolicyFile
.
Nota: la proprietà isURLInaccessible
è stata aggiunta per Flash Player 10.1 e AIR 2.0. Tuttavia, questa proprietà viene resa disponibile ai file SWF di tutte le versioni quando è supportata dal runtime di Flash. Di conseguenza, l'uso di alcuni tool di authoring in "modalità rigorosa" causa un errore di compilazione. Per ovviare all'errore, usate la sintassi indiretta mySound["isURLInaccessible"]
o disattivate la modalità rigorosa. Se usate Flash Professional CS5 o Flex SDK 4.1, potete utilizzare e compilare questa API per i runtime rilasciati prima di Flash Player 10.1 e AIR 2.
Per il contenuto dell'applicazione AIR, il valore di questa proprietà è sempre false
.
Implementazione
public function get isURLInaccessible():Boolean
Elementi API correlati
length | proprietà |
url | proprietà |
url:String
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
L'URL da cui è stato caricato l'audio. Questa proprietà è applicabile solo agli oggetti Sound caricati tramite il metodo Sound.load()
. Per gli oggetti Sound associati a una risorsa audio di una libreria dei file SWF, il valore della proprietà url
è null
.
Quando si effettua la prima chiamata a Sound.load()
, la proprietà url
all'inizio ha valore null
perché l'URL finale è ancora sconosciuto. La proprietà url
avrà un valore non nullo non appena sarà inviato un evento open
dall'oggetto Sound.
La proprietà url
contiene l'URL finale assoluto da cui è stato caricato un file audio. Il valore di url
in genere è uguale al valore passato al parametro stream
di Sound.load()
. Tuttavia, se a Sound.load()
avete passato un URL relativo, il valore della proprietà url
rappresenta l'URL assoluto. Inoltre, se la richiesta di URL originale viene reindirizzata da un server HTTP, il valore della proprietà url
rispecchia l'URL finale da cui è stato effettivamente scaricato il file audio. Questa segnalazione di un URL assoluto e definitivo equivale al comportamento di LoaderInfo.url
.
In alcuni casi, il valore della proprietà url
viene troncato; per informazioni dettagliate, vedete la proprietà isURLInaccessible
.
Implementazione
public function get url():String
Elementi API correlati
Sound | () | Funzione di costruzione |
public function Sound(stream:URLRequest = null, context:SoundLoaderContext = null)
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crea un nuovo oggetto Sound. Se viene passato un oggetto URLRequest valido alla funzione di costruzione Sound, questa effettua automaticamente la chiamata alla funzione load()
per l'oggetto Sound. Se non viene passato un oggetto URLRequest valido alla funzione di costruzione Sound, è necessario che l'utente stesso effettui la chiamata alla funzione load()
per l'oggetto Sound; in caso contrario, lo streaming non sarà caricato.
Una volta chiamata la funzione load()
su un oggetto Sound, non è possibile caricare un file audio diverso in quell'oggetto Sound. Per caricare un file audio diverso, create un nuovo oggetto Sound.
load()
, potete utilizzare il gestore di eventi sampleData
per caricare dinamicamente il suono nell'oggetto Sound.
Parametri stream:URLRequest (default = null ) — L'URL che punta a un file MP3 esterno.
| |
context:SoundLoaderContext (default = null ) — Un oggetto SoundLoaderContext opzionale che può definire il tempo di bufferizzazione (numero minimo di millisecondi durante i quali i dati MP3 vengono trattenuti nel buffer dell'oggetto Sound) e specificare se l'applicazione deve verificare la presenza di un file di criteri validi tra più domini prima di caricare l'audio.
|
close | () | metodo |
public function close():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Interrompe lo streaming e provoca l'arresto di tutte le operazioni di scaricamento dati. Dopo la chiamata al metodo close()
non è più possibile leggere dati dallo streaming.
Genera
IOError — Impossibile chiudere lo streaming oppure lo streaming non è stato aperto.
|
Esempio ( Come utilizzare questo esempio )
Sound.close()
e lo streaming audio viene interrotto.
Nella funzione di costruzione, viene creato un campo di testo per il pulsante Avvia e Interrompi. Quando l'utente fa clic sul campo di testo, viene richiamato il metodo clickHandler()
, che gestisce l'avvio e l'interruzione del file audio. In base alla connessione di rete o quando l'utente fa clic sul pulsante Interrompi, è possibile che buona parte del file sia già stata caricata e potrebbe passare del tempo prima che la riproduzione del file audio venga effettivamente interrotta. Un blocco try...catch
viene utilizzato per rilevare eventuali errori IO che potrebbero verificarsi durante la chiusura dello streaming. Ad esempio, se il suono viene caricato da una directory locale e non eseguito in streaming, viene rilevato l'errore 2029, che significa: "Per questo oggetto URLStream non è aperto alcun flusso".
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; import flash.errors.IOError; import flash.events.IOErrorEvent; public class Sound_closeExample extends Sprite { private var snd:Sound = new Sound(); private var button:TextField = new TextField(); private var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3"); public function Sound_closeExample() { button.x = 10; button.y = 10; button.text = "START"; button.border = true; button.background = true; button.selectable = false; button.autoSize = TextFieldAutoSize.LEFT; button.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(button); } private function clickHandler(e:MouseEvent):void { if(button.text == "START") { snd.load(req); snd.play(); snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); button.text = "STOP"; } else if(button.text == "STOP") { try { snd.close(); button.text = "Wait for loaded stream to finish."; } catch (error:IOError) { button.text = "Couldn't close stream " + error.message; } } } private function errorHandler(event:IOErrorEvent):void { button.text = "Couldn't load the file " + event.text; } } }
extract | () | metodo |
public function extract(target:ByteArray, length:Number, startPosition:Number = -1):Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Estrae dati audio non elaborati da un oggetto Sound.
Questo metodo è progettato per essere utilizzato quando lavorate con audio generato dinamicamente, utilizzando una funzione assegnata all'evento sampleData
per un oggetto Sound diverso. Ciò significa che il metodo può essere utilizzato per estrarre dati audio da un oggetto Sound. È quindi possibile scrivere i dati nell'array di byte che un altro oggetto Sound sta utilizzando per lo streaming dell'audio dinamico.
I dati audio vengono inseriti nell'array di byte di destinazione, a partire dalla posizione corrente dell'array di byte. I dati audio vengono sempre utilizzati come Stereo a 44100 Hz. Il tipo di campionamento è un valore a virgola mobile a 32 bit, che può essere convertito in un numero utilizzando ByteArray.readFloat()
.
Parametri
target:ByteArray — Un oggetto ByteArray in cui vengono inseriti i campionamenti audio estratti.
| |
length:Number — Il numero di campionamenti audio da estrarre. Un campionamento contiene i canali sinistro e destro, ovvero valori a virgola mobile a 32 bit.
| |
startPosition:Number (default = -1 ) — Il campionamento in corrispondenza del quale inizia l'estrazione. Se non specificate un valore, la prima chiamata a Sound.extract() parte dall'inizio del suono; le successive chiamate senza un valore per startPosition continuano in sequenza nel file.
|
Number — Il numero di campioni scritti nel ByteArray specificato nel parametro target .
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
extract()
della classe Sound per accedere ai dati audio.
I dati mp3 vengono caricati nell'oggetto Sound sourceSnd
. Quando l'applicazione carica i dati mp3, chiama la funzione loaded()
(il gestore di eventi per l'evento complete
dell'oggetto sourceSnd
). Un secondo oggetto Sound, outputSound
, viene utilizzato per riprodurre l'audio modificato. L'oggetto outputSound
ha un listener di eventi sampleData
; l'oggetto invia quindi eventi sampleData
periodici dopo aver chiamato il metodo play()
dell'oggetto. Il metodo upOctave()
restituisce un array di byte di dati audio modificati basato sui dati audio di origine. Restituisce l'audio di un'ottava più alto ignorando un campione sì e uno no nei dati di origine. Il gestore di eventi per l'evento sampleData
scrive l'array di byte restituito nella proprietà data
dell'oggetto outputSound
. L'array di byte data
viene aggiunto ai dati audio in uscita per l'oggetto outputSound
.
Per verificare la veridicità dell'esempio, aggiungete un file test.mp3 alla stessa directory come file SWF.
var sourceSnd:Sound = new Sound(); var outputSnd:Sound = new Sound(); var urlReq:URLRequest = new URLRequest("test.mp3"); sourceSnd.load(urlReq); sourceSnd.addEventListener(Event.COMPLETE, loaded); function loaded(event:Event):void { outputSnd.addEventListener(SampleDataEvent.SAMPLE_DATA, processSound); outputSnd.play(); } function processSound(event:SampleDataEvent):void { var bytes:ByteArray = new ByteArray(); sourceSnd.extract(bytes, 4096); event.data.writeBytes(upOctave(bytes)); } function upOctave(bytes:ByteArray):ByteArray { var returnBytes:ByteArray = new ByteArray(); bytes.position = 0; while(bytes.bytesAvailable > 0) { returnBytes.writeFloat(bytes.readFloat()); returnBytes.writeFloat(bytes.readFloat()); if (bytes.bytesAvailable > 0) { bytes.position += 8; } } return returnBytes; }
load | () | metodo |
public function load(stream:URLRequest, context:SoundLoaderContext = null):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Avvia il caricamento di un file MP3 esterno dall'URL specificato. Se alla funzione di costruzione Sound viene fornito un oggetto URLRequest valido, la funzione effettua automaticamente la chiamata a Sound.load()
. La chiamata a Sound.load()
deve essere effettuata dall'utente solo quando alla funzione di costruzione Sound non viene passato un oggetto URLRequest valido o viene passato un valore null
.
Una volta chiamata la funzione load()
su un oggetto Sound, non è possibile caricare un file audio diverso in quell'oggetto Sound. Per caricare un file audio diverso, create un nuovo oggetto Sound.
Quando utilizzate questo metodo, considerate il modello di sicurezza seguente:
- La chiamata a
Sound.load()
non è consentita se il file chiamante è nella sandbox locale con file system e l'audio è in una sandbox di rete. - L'accesso da una sandbox locale affidabile o locale con collegamento di rete richiede l'autorizzazione dal sito Web tramite un file di criteri per gli URL.
- Non potete collegarvi alle porte comunemente riservate. Per un elenco completo di porte bloccate, vedete "Limitazioni delle API di connettività di rete" nella Guida per gli sviluppatori di ActionScript 3.0.
- È possibile impedire che un file SWF utilizzi questo metodo impostando il parametro
allowNetworking
dei tagobject
eembed
nella pagina HTML che include il contenuto SWF.
In Flash Player 10 e versioni successive, se utilizzate un Content-Type multipart (ad esempio "multipart/form-data") che contiene un caricamento (indicato da un parametro "filename" in un'intestazione "content-disposition" nel corpo POST), l'operazione POST è soggetta alle regole di sicurezza applicate ai caricamenti:
- L'operazione POST deve essere eseguita come risposta a un'azione compiuta dall'utente, come un clic del mouse o la pressione di un tasto.
- Se l'operazione POST è tra più domini (il target POST non si trova sullo stesso server del file SWF che invia la richiesta POST), il server di destinazione deve fornire un file di criteri URL che consenta l'accesso tra più domini.
Inoltre, per qualsiasi Content-Type multipart, la sintassi deve essere valida (in conformità agli standard RFC2046). Se la sintassi non è valida, l'operazione POST è soggetta alle regole di sicurezza applicate ai caricamenti.
In Adobe AIR, il contenuto della sandbox di sicurezza dell'applicazione
(contenuto installato con l'applicazione AIR) non è limitato da tali restrizioni di sicurezza.
Per ulteriori informazioni sulla sicurezza, vedete l'argomento sulla sicurezza nel Centro per sviluppatori di Flash Player .
Parametri
stream:URLRequest — Un URL che punta a un file MP3 esterno.
| |
context:SoundLoaderContext (default = null ) — Un oggetto SoundLoaderContext opzionale che può definire il tempo di bufferizzazione (numero minimo di millisecondi durante i quali i dati MP3 vengono trattenuti nel buffer dell'oggetto Sound) e specificare se l'applicazione deve verificare la presenza di un file di criteri validi tra più domini prima di caricare l'audio.
|
Genera
IOError — Il caricamento non è riuscito a causa di un errore di rete.
| |
SecurityError — I file non attendibili locali potrebbero non essere in grado di comunicare con Internet. Questo problema può essere risolto riclassificando il file come file locale con utilizzo in rete o come attendibile.
| |
SecurityError — Non potete collegarvi alle porte comunemente riservate. Per un elenco completo di porte bloccate, vedete "Limitazioni delle API di connettività di rete" nella Guida per gli sviluppatori di ActionScript 3.0.
| |
IOError — La proprietà digest dell'oggetto stream non è null . È necessario impostare solo la proprietà digest quando si chiama il metodo URLLoader.load() durante il caricamento di un file SWZ (un componente della piattaforma Adobe).
|
Esempio ( Come utilizzare questo esempio )
Nella funzione di costruzione viene creato un oggetto URLRequest
per identificare la posizione del file audio, un podcast di Adobe. Il file viene caricato in un blocco try...catch
per individuare eventuali errori che potrebbero verificarsi durante il caricamento del file. Se si verifica un errore IO, anche il metodo errorHandler()
viene richiamato e il messaggio di errore viene scritto nel campo di testo preposto della relazione sull'avanzamento. Quando è in corso un'operazione di caricamento, viene inviato un evento ProgressEvent.PROGRESS
e viene richiamato il metodo progressHandler()
. L'evento ProgressEvent.PROGRESS
viene utilizzato come timer per il calcolo dell'avanzamento del caricamento.
Il metodo progressHandler()
divide il valore bytesLoaded
trasferito con l'oggetto ProgressEvent
per il valore bytesTotal
per arrivare alla percentuale di dati audio in corso di caricamento. Questi valori vengono visualizzati nel campo di testo (se il file è piccolo, memorizzato nella cache o se si trova nella directory locale, l'avanzamento potrebbe passare inosservato).
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.ProgressEvent; import flash.events.IOErrorEvent; public class Sound_loadExample extends Sprite { private var snd:Sound = new Sound(); private var statusTextField:TextField = new TextField(); public function Sound_loadExample(){ statusTextField.autoSize = TextFieldAutoSize.LEFT; var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3"); try { snd.load(req); snd.play(); } catch (err:Error) { trace(err.message); } snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); snd.addEventListener(ProgressEvent.PROGRESS, progressHandler); this.addChild(statusTextField); } private function progressHandler(event:ProgressEvent):void { var loadTime:Number = event.bytesLoaded / event.bytesTotal; var LoadPercent:uint = Math.round(100 * loadTime); statusTextField.text = "Sound file's size in bytes: " + event.bytesTotal + "\n" + "Bytes being loaded: " + event.bytesLoaded + "\n" + "Percentage of sound file that is loaded " + LoadPercent + "%.\n"; } private function errorHandler(errorEvent:IOErrorEvent):void { statusTextField.text = "The sound could not be loaded: " + errorEvent.text; } } }
loadCompressedDataFromByteArray | () | metodo |
public function loadCompressedDataFromByteArray(bytes:ByteArray, bytesLength:uint):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 3, Flash Player 11 |
Carica dati audio MP3 da un oggetto ByteArray a un oggetto Sound. I dati vengono letti dalla posizione ByteArray corrente fino alla posizione ByteArray alla fine della lunghezza di byte specificata. Se i dati audio MP3 contengono dati ID3, durante questa chiamata di funzione vengono inviati eventi ID3. Questa funzione genera un'eccezione se l'oggetto ByteArray non contiene dati sufficienti.
Parametri
bytes:ByteArray | |
bytesLength:uint |
loadPCMFromByteArray | () | metodo |
public function loadPCMFromByteArray(bytes:ByteArray, samples:uint, format:String = "float", stereo:Boolean = true, sampleRate:Number = 44100.0):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 3, Flash Player 11 |
Carica dati audio PCM 32-bit a virgola mobile da un oggetto ByteArray a un oggetto Sound. I dati vengono letti dalla posizione ByteArray corrente fino alla posizione ByteArray alla fine della lunghezza campione specificata moltiplicata per 1 canale o 2 canali se il flag stereo viene impostato al termine.
A partire da Flash Player 11.8, la quantità di dati audio che possono essere passati a questa funzione è limitata. Per le versioni SWF >= 21, questa funzione genera un’eccezione se la quantità di dati audio passata a questa funzione è superiore a 1800 secondi. Ovvero i campioni/la frequenza di campionamento deve essere minore o uguale a 1800. Per le versioni software precedenti alla 21, si verifica un errore nel runtime senza visualizzare messaggi se la quantità di dati audio passati supera il limite di 12000 secondi. Ciò viene reso disponibile solo per ragioni di compatibilità con le versioni precedenti.
Questa funzione solleva un’eccezione se l’oggetto ByteArray non contiene dati sufficienti.
Parametri
bytes:ByteArray | |
samples:uint | |
format:String (default = "float ")
| |
stereo:Boolean (default = true )
| |
sampleRate:Number (default = 44100.0 )
|
play | () | metodo |
public function play(startTime:Number = 0, loops:int = 0, sndTransform:flash.media:SoundTransform = null):SoundChannel
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Genera un nuovo oggetto SoundChannel per la riproduzione dell'audio. Questo metodo restituisce un oggetto SoundChannel a cui è possibile accedere per interrompere l'audio e per controllare il volume (per controllare il volume, la panoramica e il bilanciamento, accedete all'oggetto SoundTransform assegnato al canale audio).
Parametri
startTime:Number (default = 0 ) — La posizione iniziale in cui deve iniziare la riproduzione, in millisecondi.
| |
loops:int (default = 0 ) — Definisce il numero di ripetizioni del valore startTime di un suono prima che il canale audio interrompa la riproduzione.
| |
sndTransform:flash.media:SoundTransform (default = null ) — L'oggetto SoundTransform iniziale assegnato al canale audio.
|
SoundChannel — Un oggetto SoundChannel utilizzato per controllare l'audio. Questo metodo restituisce null se non è installata una scheda audio o se non vi sono più canali audio disponibili. Il numero massimo di canali audio disponibili contemporaneamente è 32.
|
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
La funzione di costruzione chiama il metodo Sound.load()
per avviare il caricamento dei dati audio. In seguito, chiama il metodo Sound.play()
, che avvia la riproduzione del suono non appena sono stati caricati dati a sufficienza. Il metodo Sound.play()
restituisce un oggetto SoundChannel che può essere utilizzato per controllare la riproduzione del suono. Il campo di testo visualizza le istruzioni. Per avere la certezza che il contenuto del punto da cui deve avere inizio la riproduzione sia già stato caricato, l'oggetto Sprite bar
viene creato e visualizzato al termine del caricamento del file. Al termine del caricamento del file, viene inviato un evento Event.COMPLETE
, che genera il metodo completeHandler()
. Il metodo completeHandler()
crea quindi la barra e l'aggiunge all'elenco di visualizzazione. Un oggetto Sprite viene utilizzato al posto di un oggetto Shape per il supporto dell'interattività. Quando l'utente fa clic sulla barra, viene attivato il metodo clickHandler()
.
Nel metodo clickHandler()
, la posizione della coordinata x del clic dell'utente, event.localX
, viene utilizzata per determinare il punto da cui l'utente desidera iniziare la riproduzione del file. Poiché la barra rappresenta 100 pixel e inizia alla coordinata x dei 100 pixel, è molto semplice determinare la percentuale della posizione. Inoltre, poiché il file è stato caricato, la proprietà length
del file audio avrà la lunghezza del file completo in millisecondi. Tramite la lunghezza del file audio e la posizione sulla linea, è possibile determinare la posizione di avvio del file audio. Se si interrompe la riproduzione audio, il file audio riparte dalla posizione di avvio selezionata, che viene trasmessa come parametro startTime
al metodo play()
.
package { import flash.display.Sprite; import flash.display.Graphics; import flash.events.MouseEvent; import flash.media.Sound;; import flash.net.URLRequest; import flash.media.SoundChannel; import flash.events.ProgressEvent; import flash.events.Event; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.IOErrorEvent; public class Sound_playExample1 extends Sprite { private var snd:Sound = new Sound(); private var channel:SoundChannel = new SoundChannel(); private var infoTextField:TextField = new TextField(); public function Sound_playExample1() { var req:URLRequest = new URLRequest("MySound.mp3"); infoTextField.autoSize = TextFieldAutoSize.LEFT; infoTextField.text = "Please wait for the file to be loaded.\n" + "Then select from the bar to decide where the file should start."; snd.load(req); channel = snd.play(); snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); snd.addEventListener(Event.COMPLETE, completeHandler); this.addChild(infoTextField); } private function completeHandler(event:Event):void { infoTextField.text = "File is ready."; var bar:Sprite = new Sprite(); bar.graphics.lineStyle(5, 0xFF0000); bar.graphics.moveTo(100, 100); bar.graphics.lineTo(200, 100); bar.addEventListener(MouseEvent.CLICK, clickHandler); this.addChild(bar); } private function clickHandler(event:MouseEvent):void { var position:uint = event.localX; var percent:uint = Math.round(position) - 100; var cue:uint = (percent / 100) * snd.length; channel.stop(); channel = snd.play(cue); } private function errorHandler(errorEvent:IOErrorEvent):void { infoTextField.text = "The sound could not be loaded: " + errorEvent.text; } } }
Nella funzione di costruzione, il suono viene caricato e viene creato un oggetto Sprite button
a forma di rettangolo. Un oggetto Sprite viene utilizzato al posto di un oggetto Shape per il supporto dell'interattività. Si presume che il file audio si trovi nella stessa directory del file SWF. Non è disponibile codice per la gestione degli errori per questo esempio.
Due listener di eventi sono impostati per rispondere ai clic e ai doppi clic del mouse. Se l'utente fa clic, viene richiamato il metodo clickHandler()
, che riproduce il suono. Se l'utente fa doppio clic sul pulsante, viene richiamato il metodo doubleClickHandler()
, che riproduce il suono due volte. Il secondo argomento del metodo play()
è impostato su 1
, il che significa che la riproduzione audio torna una volta al punto di inizio e viene eseguita nuovamente. L'ora di inizio, primo argomento, è impostata su 0
, quindi il file verrà riprodotto dall'inizio.
package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.media.Sound; import flash.net.URLRequest; public class Sound_playExample2 extends Sprite { private var button:Sprite = new Sprite(); private var snd:Sound = new Sound(); public function Sound_playExample2() { var req:URLRequest = new URLRequest("click.mp3"); snd.load(req); button.graphics.beginFill(0x00FF00); button.graphics.drawRect(10, 10, 50, 30); button.graphics.endFill(); button.addEventListener(MouseEvent.CLICK, clickHandler); button.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickHandler); this.addChild(button); } private function clickHandler(event:MouseEvent):void { snd.play(); } private function doubleClickHandler(event:MouseEvent):void { snd.play(0, 2); } } }
Nella funzione di costruzione, il file viene caricato in un blocco try...catch
per individuare eventuali errori che potrebbero verificarsi durante il caricamento del file. Un listener viene aggiunto all'oggetto audio che risponde a un evento IOErrorEvent
chiamando il metodo errorHandler()
. Un altro listener viene aggiunto per l'applicazione principale che risponde a un evento Event.ENTER_FRAME
, utilizzato come meccanismo di determinazione del momento in cui visualizzare l'avanzamento della riproduzione. Infine, un terzo listener viene aggiunto per il canale audio che risponde a un evento Event.SOUND_COMPLETE
(al termine della riproduzione), chiamando il metodo soundCompleteHandler()
. Il metodo soundCompleteHandler()
rimuove anche il listener di eventi per l'evento Event.ENTER_FRAME
.
Il metodo enterFrameHandler()
divide il valore bytesLoaded
trasferito con l'oggetto ProgressEvent
per il valore bytesTotal
per arrivare alla percentuale di dati audio in corso di caricamento. La percentuale di dati audio in corso di riproduzione può essere determinata dividendo il valore della proprietà position
del canale audio per la lunghezza dei dati audio. Tuttavia, se i dati audio non sono stati completamente caricati, la proprietà length
dell'oggetto audio mostra solo la dimensione dei dati audio caricata al momento. È possibile calcolare una stima della dimensione definitiva del file audio completo dividendo il valore della proprietà length
dell'oggetto audio corrente per il valore della proprietà bytesLoaded
diviso il valore della proprietà bytesTotal
.
Se il file è piccolo, memorizzato nella cache o se si trova nella directory locale, l'avanzamento del caricamento potrebbe passare inosservato. Anche l'intervallo di tempo tra il momento in cui inizia il caricamento e la riproduzione dei dati audio viene determinato grazie al valore della proprietà SoundLoaderContext.buffertime
, che per impostazione predefinita è 1000 millisecondi e può essere reimpostato.
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundChannel; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.Event; import flash.events.IOErrorEvent; public class Sound_playExample3 extends Sprite { private var snd:Sound = new Sound(); private var channel:SoundChannel; private var statusTextField:TextField = new TextField(); public function Sound_playExample3(){ statusTextField.autoSize = TextFieldAutoSize.LEFT; var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3"); try { snd.load(req); channel = snd.play(); } catch (err:Error) { trace(err.message); } snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); addEventListener(Event.ENTER_FRAME, enterFrameHandler); channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); this.addChild(statusTextField); } private function enterFrameHandler(event:Event):void { var loadTime:Number = snd.bytesLoaded / snd.bytesTotal; var loadPercent:uint = Math.round(100 * loadTime); var estimatedLength:int = Math.ceil(snd.length / (loadTime)); var playbackPercent:uint = Math.round(100 * (channel.position / estimatedLength)); statusTextField.text = "Sound file's size is " + snd.bytesTotal + " bytes.\n" + "Bytes being loaded: " + snd.bytesLoaded + "\n" + "Percentage of sound file that is loaded " + loadPercent + "%.\n" + "Sound playback is " + playbackPercent + "% complete."; } private function errorHandler(errorEvent:IOErrorEvent):void { statusTextField.text = "The sound could not be loaded: " + errorEvent.text; } private function soundCompleteHandler(event:Event):void { statusTextField.text = "The sound has finished playing."; removeEventListener(Event.ENTER_FRAME, enterFrameHandler); } } }
complete | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.COMPLETE
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato quando i dati sono stati caricati correttamente.
La costanteEvent.COMPLETE
definisce il valore della proprietà type
di un oggetto evento complete
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto di rete che ha completato il caricamento. |
Elementi API correlati
id3 | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.ID3
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato da un oggetto Sound quando sono disponibili dati ID3 per il file audio MP3.
La costanteEvent.ID3
definisce il valore della proprietà type
di un oggetto evento id3
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto Sound che carica l'MP3 per cui sono ora disponibili dati ID3. Il target non è sempre l'oggetto nell'elenco di visualizzazione che ha registrato il listener di eventi. Utilizzate la proprietà currentTarget per accedere all'oggetto dell'elenco di visualizzazione che sta elaborando l'evento. |
Elementi API correlati
ioError | Evento |
flash.events.IOErrorEvent
proprietà IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato quando si verifica un errore di input/output che impedisce l'operazione di caricamento.
Definisce il valore della proprietàtype
di un oggetto evento ioError
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
errorID | Un numero di riferimento associato all'errore specifico (solo AIR). |
target | L'oggetto di rete interessato dall'errore di input/output. |
text | Testo da visualizzare come messaggio di errore. |
Elementi API correlati
open | Evento |
flash.events.Event
proprietà Event.type =
flash.events.Event.OPEN
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato quando inizia un'operazione di caricamento.
La costanteEvent.OPEN
definisce il valore della proprietà type
di un oggetto evento open
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto di rete che ha aperto una connessione. |
Elementi API correlati
progress | Evento |
flash.events.ProgressEvent
proprietà ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Inviato quando vengono ricevuti i dati nel corso di un'operazione di caricamento.
Definisce il valore della proprietàtype
di un oggetto evento progress
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
bytesLoaded | Il numero di elementi o di byte caricati nel momento in cui il listener elabora l'evento. |
bytesTotal | Il numero totale di elementi o byte che vengono caricati se il processo di caricamento viene completato correttamente. |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
currentTarget | L'oggetto che elabora attivamente l'oggetto Event con un listener di eventi. |
target | L'oggetto che riporta l'avanzamento. |
Elementi API correlati
sampleData | Evento |
flash.events.SampleDataEvent
proprietà SampleDataEvent.type =
flash.events.SampleDataEvent.SAMPLE_DATA
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 10, AIR 1.5 |
Inviato quando il runtime richiede nuovi dati audio.
Definisce il valore della proprietàtype
di un oggetto evento SampleDataEvent
.
Questo evento ha le seguenti proprietà:
Proprietà | Valore |
---|---|
bubbles | false |
cancelable | false ; non è presente alcun comportamento predefinito da annullare. |
position | Il punto da cui vengono forniti i dati audio. |
Esempio ( Come utilizzare questo esempio )
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();
Elementi API correlati
package { import flash.display.Sprite; import flash.events.*; import flash.media.Sound; import flash.media.SoundChannel; import flash.net.URLRequest; public class SoundExample extends Sprite { private var url:String = "MySound.mp3"; private var song:SoundChannel; public function SoundExample() { var request:URLRequest = new URLRequest(url); var soundFactory:Sound = new Sound(); soundFactory.addEventListener(Event.COMPLETE, completeHandler); soundFactory.addEventListener(Event.ID3, id3Handler); soundFactory.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); soundFactory.addEventListener(ProgressEvent.PROGRESS, progressHandler); soundFactory.load(request); song = soundFactory.play(); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function id3Handler(event:Event):void { trace("id3Handler: " + event); } private function ioErrorHandler(event:Event):void { trace("ioErrorHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: " + event); } } }
Tue Jun 12 2018, 02:44 PM Z