| Paket | flash.media |
| Klasse | public class Sound |
| Vererbung | Sound EventDispatcher Object |
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Die in einer SWF-Datei eingebetteten Sounds können Sie über die Eigenschaften in der SoundMixer-Klasse steuern.
Hinweis: Die Sound-API in ActionScript 3.0 unterscheidet sich von der in ActionScript 2.0. In ActionScript 3.0 können Sie Soundobjekte zum Steuern der zugehörigen Eigenschaften nicht in einer Hierarchie anordnen.
Beachten Sie bei Verwendung dieser Klasse das folgende Sicherheitsmodell von Flash Player:
Sound.id3-Eigenschaft sowie die Methoden SoundMixer.computeSpectrum(), SoundMixer.bufferTime und die SoundTransform()-Klasse.Weitere Informationen finden Sie in den folgenden Abschnitten:
Siehe auch
| Eigenschaft | Definiert von | ||
|---|---|---|---|
| bytesLoaded : uint
[read-only] Gibt die derzeit verfügbare Anzahl der Byte in diesem Sound-Objekt zurück.
| Sound | ||
| bytesTotal : int
[read-only] Gibt die Gesamtanzahl der Byte in diesem Sound-Objekt zurück.
| Sound | ||
![]() | constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz.
| Object | |
| id3 : ID3Info
[read-only] Bietet Zugriff auf die Metadaten, die in MP3-Dateien enthalten sind.
| Sound | ||
| isBuffering : Boolean
[read-only] Gibt den Zwischenspeicherstatus externer MP3-Dateien zurück.
| Sound | ||
| length : Number
[read-only] Die Länge des aktuellen Sounds in Millisekunden.
| Sound | ||
![]() | prototype : Object
[static] Ein Verweis auf das Prototypobjekt einer Klasse oder eines Funktionsobjekts.
| Object | |
| url : String
[read-only] Die URL, von der der Sound geladen wurde.
| Sound | ||
| Methode | Definiert von | ||
|---|---|---|---|
|
Erstellt ein neues Sound-Objekt.
| Sound | ||
![]() |
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 | |
|
Schließt den Stream. Dadurch werden eventuelle Downloads von Daten beendet.
| Sound | ||
![]() |
Sendet ein Ereignis in den Ereignisablauf.
| EventDispatcher | |
![]() |
Ü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 | |
|
Initiiert den Ladevorgang einer externen MP3-Datei von der angegebenen URL.
| Sound | ||
|
Erstellt ein neues SoundChannel-Objekt zur Wiedergabe des Sounds.
| Sound | ||
![]() |
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
| Object | |
![]() |
Entfernt einen Listener aus dem EventDispatcher-Objekt.
| EventDispatcher | |
![]() |
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
| 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 vorangegangenen Elementen ein Ereignis-Listener für einen bestimmten Ereignistyp registriert ist.
| EventDispatcher | |
| Ereignis | Übersicht | Definiert von | ||
|---|---|---|---|---|
![]() | Wird ausgelöst, wenn Flash Player den Betriebssystemfokus erhält und aktiv wird. | EventDispatcher | ||
| Wird nach dem erfolgreichen Laden von Daten ausgelöst. | Sound | |||
![]() | Wird ausgelöst, wenn Flash Player den Betriebssystemfokus verliert und inaktiv wird. | EventDispatcher | ||
| Wird durch ein Sound-Objekt ausgelöst, wenn ID3-Daten für einen MP3-Sound verfügbar sind. | Sound | |||
| Wird beim Auftreten eines Eingabe/Ausgabe-Fehlers ausgelöst, durch den der Ladevorgang fehlschlägt. | Sound | |||
| Wird beim Start eines Ladevorgangs ausgelöst. | Sound | |||
| Wird ausgelöst, wenn während eines Ladevorgangs Daten empfangen werden. | Sound | |||
| bytesLoaded | Eigenschaft |
bytesLoaded:uint [read-only]
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Gibt die derzeit verfügbare Anzahl der Byte in diesem Sound-Objekt zurück. Dies empfiehlt sich in der Regel nur bei extern geladenen Dateien.
public function get bytesLoaded():uint | bytesTotal | Eigenschaft |
bytesTotal:int [read-only]
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Gibt die Gesamtanzahl der Byte in diesem Sound-Objekt zurück.
public function get bytesTotal():int | id3 | Eigenschaft |
id3:ID3Info [read-only]
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Bietet Zugriff auf die Metadaten, die in MP3-Dateien enthalten sind.
MP3-Sounddateien können ID3-Tags mit Metadaten zur Datei enthalten. Wenn ein MP3-Sound, der mit der Sound.load()-Methode geladen wurde, ID3-Tags enthält, können Sie diese Eigenschaften abfragen. Es werden nur ID3-Tags unterstützt, die den UTF-8-Zeichensatz verwenden.
Flash Player 9 und spätere Versionen unterstützen auch ID3 2.0-Tags, im Speziellen 2.3 und 2.4. In der folgenden Tabelle sind die ID3 2.0-Standardtags und der Inhaltstyp der einzelnen Tags aufgeführt. Mit der Sound.id3-Eigenschaft kann über das Format my_sound.id3.COMM, my_sound.id3.TIME usw. auf diese Tags zugegriffen werden. In der ersten Tabelle sind Tags aufgeführt, auf die über den ID3 2.0-Eigenschaftennamen oder den ActionScript-Eigenschaftennamen zugegriffen werden kann. In der zweiten Tabelle sind ID3-Tags beschrieben, die unterstützt werden, jedoch in ActionScript über keine vordefinierten Eigenschaften verfügen.
| ID3 2.0-Tag | Entsprechende ActionScript-Eigenschaft |
| 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 |
In der folgenden Tabelle sind ID3-Tags beschrieben, die unterstützt werden, jedoch in ActionScript über keine vordefinierten Eigenschaften verfügen. Auf diese Tags kann durch Aufrufen von mySound.id3.TFLT, mySound.id3.TIME usw. zugegriffen werden.
| Eigenschaft | Beschreibung |
| TFLT | Dateityp |
| TIME | Zeit |
| TIT1 | Beschreibung der Inhaltsgruppe |
| TIT2 | Titel/Liedtitel/Inhaltsbeschreibung |
| TIT3 | Untertitel/Detaillierte Beschreibung |
| TKEY | Erster Ton |
| TLAN | Sprachen |
| TLEN | Länge |
| TMED | Medientyp |
| TOAL | Originalalbum-/Film-/Präsentationstitel |
| TOFN | Originaldateiname |
| TOLY | Originalautor/Songwriter |
| TOPE | Originalkünstler |
| TORY | Jahr der Erstveröffentlichung |
| TOWN | Eigentümer/Lizenznehmer |
| TPE1 | Hauptkünstler/Solokünstler |
| TPE2 | Band/Orchester/Begleitung |
| TPE3 | Leitung/Detaillierte Auflistung der Künstler |
| TPE4 | Interpretation, Remix oder sonstige Bearbeitung durch |
| TPOS | Teil eines Satzes |
| TPUB | Publisher |
| TRCK | Titelnummer/Position in Satz |
| TRDA | Aufnahmedaten |
| TRSN | Name des Internet-Radiosenders |
| TRSO | Eigentümer des Internet-Radiosenders |
| TSIZ | Größe |
| TSRC | ISRC (International Standard Recording Code) |
| TSSE | Software/Hardware und Einstellungen für die Codierung |
| TYER | Jahr |
| WXXX | URL-Verknüpfung |
Beachten Sie bei Verwendung dieser Eigenschaft das folgende Sicherheitsmodell von Flash Player:
id3-Eigenschaft eines Sound-Objekts ist bei SWF-Dateien, die sich in der gleichen Sicherheits-Sandbox wie die Sounddatei befinden, immer zulässig. Bei Dateien in anderen Sandboxes werden Sicherheitsprüfungen durchgeführt.load()-Methode der Sound-Klasse laden, können Sie einencontext-Parameter angeben, bei dem es sich um ein SoundLoaderContext-Objekt handelt. Wenn Sie die checkPolicyFile-Eigenschaft des SoundLoaderContext-Objekts auf true setzen, wird in Flash Player auf dem Server eine domänenübergreifende Richtliniendatei gesucht, über die der Sound geladen wird. Wenn eine domänenübergreifende Richtliniendatei vorhanden ist und die Datei die Domäne der ladenden SWF-Datei zulässt, kann die Datei auf die id3-Eigenschaft des Sound-Objekts zugreifen. Andernfalls ist dies nicht möglich.Weitere Informationen finden Sie in den folgenden Abschnitten:
public function get id3():ID3Info Siehe auch
Im Konstruktor wird die Audiodatei geladen, ist jedoch nicht auf das Abspielen eingestellt. Hier wird davon ausgegangen, dass sich die Datei im SWF-Verzeichnis befindet. Das System muss über die Berechtigung zum Lesen der ID3-Tags einer geladenen Audiodatei verfügen. Wenn die Datei ID3-Informationen enthält und das Programm berechtigt ist, diese zu lesen, wird ein Event.ID3-Ereignis ausgelöst und die Eigenschaft id3 der Audiodatei wird gefüllt. Die id3-Eigenschaft enthält ein ID3Info-Objekt mit allen ID3-Informationen.
In der id3Handler()-Methode werden die ID3-Tags der Datei in id3, einem ID3Info-Klassenobjekt. Es wird ein Textfeld instanziiert, um die Liste der ID3-Tags anzuzeigen. Die for-Schleife durchläuft alle ID3 2.0-Tags und hängt den Namen und den Wert an den Inhalt des Textfelds an. Mithilfe der ID3-Info-Eigenschaften (ID3Info) werden der Interpret, der Titelname und das Album ebenfalls angehängt. ActionScript 3.0 sowie Flash Player 9 und höher unterstützen ID3 2.0-Tags, speziell 2.3 und 2.4. Wenn Sie Eigenschaften durchlaufen wie in der for-Schleife, werden nur ID3 2.0-Tags angezeigt. Die Daten aus den früheren Versionen werden jedoch ebenfalls in der id3-Eigenschaft des Titels gespeichert und können mithilfe der Eigenschaften der ID3-Info-Klasse abgerufen werden. Die Tage für ID3 1.0 befinden sich am Ende der Datei, während die ID3 2.0-Tags am Anfang der Datei stehen. (In einigen Fällen weisen Dateien sowohl die Tags der früheren als auch die der älteren Versionen an derselben Stelle auf.) Wenn eine Datei sowohl am Anfang als auch am Ende der Datei Tags beider Versionen, 1.0 und 2.0, aufweist, wird die id3Handler()-Methode zwei Mal aufgerufen. Zuerst wird die 2.0-Version und dann die 1.0-Version gelesen. Wenn nur ein ID3 1.0-Tag verfügbar ist, kann über die ID3-Eigenschaften wie id3.songname darauf zugegriffen werden. Für ID3 2.0 ruft die id3.TITS-Eigenschaft den Namen des Titels mithilfe des neuen Tags (TITS) ab.
Beachten Sie, dass für dieses Beispiel keine Fehlerverarbeitung geschrieben wurde, und wenn der ID3-Inhalt umfangreich ist, geht das Ergebnis möglicherweise über den anzeigbaren Bereich hinaus.
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 | Eigenschaft |
isBuffering:Boolean [read-only]
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Gibt den Zwischenspeicherstatus externer MP3-Dateien zurück. Wenn der Wert auf true gesetzt ist, wird die Wiedergabe unterbrochen, während das Objekt auf weitere Daten wartet.
public function get isBuffering():Boolean | length | Eigenschaft |
length:Number [read-only]
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Die Länge des aktuellen Sounds in Millisekunden.
public function get length():Number | url | Eigenschaft |
url:String [read-only]
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Die URL, von der der Sound geladen wurde. Diese Eigenschaft kann nur auf Sound-Objekte angewendet werden, die mit der Sound.load()-Methode geladen wurden. Bei Sound-Objekten, die mit einem Soundelement in der Bibliothek einer SWF-Datei verknüpft sind, ist der Wert der url-Eigenschaft null.
Da die endgültige URL noch nicht bekannt ist, hat die url-Eigenschaft beim ersten Aufrufen von Sound.load() anfänglich den Wert null. Sobald ein open-Ereignis über das Sound-Objekt ausgelöst wurde, nimmt die url-Eigenschaft einen anderen Wert an.
Die url-Eigenschaft enthält die endgültige, absolute URL, von der ein Sound geladen wurde. Der Wert von url entspricht in der Regel dem Wert, der an den stream-Parameter von Sound.load() übergeben wurde. Wenn Sie jedoch eine relative URL an Sound.load() übergeben haben, gibt der Wert der url-Eigenschaft die absolute URL an. Wird die ursprüngliche URL-Anforderung über einen HTTP-Server weitergeleitet, entspricht der Wert der url-Eigenschaft der endgültigen URL, über die die Sounddatei tatsächlich heruntergeladen wurde. Diese Protokollierung einer absoluten, endgültigen URL entspricht dem Verhalten von LoaderInfo.url.
public function get url():String Siehe auch
| Sound | () | Konstruktor |
public function Sound(stream:URLRequest = null, context:SoundLoaderContext = null)
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Erstellt ein neues Sound-Objekt. Wenn Sie ein gültiges URLRequest-Objekt für den Sound-Konstruktor übergeben, ruft der Konstruktor automatisch die load()-Funktion für das Sound-Objekt auf. Wenn Sie kein gültiges URLRequest-Objekt für den Sound-Konstruktor übergeben, müssen Sie die load()-Funktion für das Sound-Objekt selbst aufrufen, da der Stream andernfalls nicht geladen wird.
Sobald load() für ein Sound-Objekt aufgerufen wurde, kann später keine andere Sounddatei mehr in dieses Sound-Objekt geladen werden. Erstellen Sie ein neues Sound-Objekt, wenn Sie eine andere Sounddatei laden möchten.
stream:URLRequest (default = null) — Die URL, die auf eine externe MP3-Datei verweist.
|
|
context:SoundLoaderContext (default = null) — Mindestdauer in Millisekunden, in der MP3-Daten im Puffer eines Sound-Objekts gespeichert werden. Die Wiedergabe des Sound-Objekts bzw. die Fortsetzung der Wiedergabe nach einem Netzwerkausfall wird erst gestartet, nachdem mindestens diese Daten erfasst wurden. Der Standardwert lautet 1000 (1 Sekunde).
|
| close | () | Methode |
public function close():void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Schließt den Stream. Dadurch werden eventuelle Downloads von Daten beendet. Nach dem Aufrufen der close()-Methode können möglicherweise keine Daten aus dem Stream gelesen werden.
IOError — Der Stream konnte nicht geschlossen werden, oder der Stream war nicht geöffnet.
|
Sound.close()-Methode aufgerufen, wenn der Benutzer auf die Stop-Schaltfläche klickt, und das Streaming des Sounds wird gestoppt.
Im Konstruktor wird ein Textfeld für die Start- und Stop-Schaltfläche erstellt. Wenn der Benutzer auf das Textfeld klickt, wird die Methode clickHandler() aufgerufen. Sie verwaltet das Starten und Beenden der Audiodatei. Beachten Sie, dass abhängig von der Netzwerkgeschwindigkeit oder vom Zeitpunkt des Klicks auf die Stop-Schaltfläche möglicherweise ein Großteil der Datei bereits geladen wurde, sodass es einen Moment dauern kann, bis die Wiedergabe beendet wird. Es wird ein try...catch-Block verwendet, um etwaige IO-Fehler, die beim Schließen des Streams auftreten können, abzufangen. Wenn der Sound zum Beispiel aus einem lokalen Verzeichnis geladen und nicht gestreamt wird, wird Fehler 2029 erfasst, der besagt "Dieses URLStream-Objekt verfügt nicht über einen geöffneten Stream."
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;
}
}
}
| load | () | Methode |
public function load(stream:URLRequest, context:SoundLoaderContext = null):void
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Initiiert den Ladevorgang einer externen MP3-Datei von der angegebenen URL. Wenn Sie ein gültiges URLRequest-Objekt für den Sound-Konstruktor übergeben, wird automatisch Sound.load() aufgerufen. Sie müssen Sound.load() nur aufrufen, wenn Sie kein gültiges URLRequest-Objekt oder den Wert null für den Sound-Konstruktor übergeben.
Sobald load() für ein Sound-Objekt aufgerufen wurde, kann später keine andere Sounddatei mehr in dieses Sound-Objekt geladen werden. Erstellen Sie ein neues Sound-Objekt, wenn Sie eine andere Sounddatei laden möchten.
Sound.load() ist nicht zulässig, wenn sich die aufrufende SWF-Datei in der lokalen Sandbox des Dateisystems und der Sound in einer Netzwerk-Sandbox befindet.allowNetworking der Tags object und embed festlegen.Weitere Informationen finden Sie in den folgenden Abschnitten:
Parameter
stream:URLRequest — Eine URL, die auf eine externe MP3-Datei verweist.
|
|
context:SoundLoaderContext (default = null) — Mindestdauer in Millisekunden, in der MP3-Daten im Puffer eines Sound-Objekts gespeichert werden. Die Wiedergabe des Sound-Objekts bzw. die Fortsetzung der Wiedergabe nach einem Netzwerkausfall wird erst gestartet, nachdem mindestens diese Daten erfasst wurden. Der Standardwert lautet 1000 (1 Sekunde).
|
IOError — Der Ladevorgang ist aufgrund eines Netzwerkfehlers fehlgeschlagen.
|
|
SecurityError — Über lokale nicht vertrauenswürdige SWF-Dateien kann keine Verbindung mit dem Internet hergestellt werden. Sie können dies umgehen, indem Sie die entsprechende SWF-Datei als lokal mit Netzwerkzugang oder als vertrauenswürdig klassifizieren.
|
Siehe auch
Im Konstruktor wird ein URLRequest-Objekt erstellt, um den Speicherort der Audiodatei, ein Podcast von Adobe, zu bestimmen. Die Datei wird in einen try...catch-Block geladen, um Fehler abzufangen, die möglicherweise beim Laden der Datei auftreten. Wenn ein IO-Fehler auftritt, wird die errorHandler()-Methode ebenfalls aufgerufen, und die Fehlermeldung wird in das Textfeld geschrieben, das für den Fortschrittsbericht vorgesehen ist. Während des Ladevorgangs wird ein ProgressEvent.PROGRESS-Ereignis ausgelöst und die progressHandler()-Methode wird aufgerufen. Hier wird das ProgressEvent.PROGRESS-Ereignis als Timer für die Berechnung des Ladevorgangs verwendet.
Die progressHandler()-Methode teilt den bytesLoaded-Wert, der mit dem ProgressEvent-Objekt übergeben wird, durch den bytesTotal-Wert, um den Prozentwert der bereits geladenen Audiodaten zu ermitteln. Danach werden diese Werte im Textfeld angezeigt. (Beachten Sie, dass für den Fall, dass die Datei klein ist, im Cache gespeichert ist oder sich im lokalen Verzeichnis befindet, der Fortschritt möglicherweise nicht bemerkbar ist.)
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;
}
}
}| play | () | Methode |
public function play(startTime:Number = 0, loops:int = 0, sndTransform:SoundTransform = null):SoundChannel
| Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Erstellt ein neues SoundChannel-Objekt zur Wiedergabe des Sounds. Diese Methode gibt ein SoundChannel-Objekt zurück, auf das Sie zum Beenden des Sounds und zum Überwachen der Lautstärke zugreifen können. (Greifen Sie zum Steuern von Lautstärke, Schwenkung und Balance auf das SoundTransform-Objekt zu, das dem Soundkanal zugewiesen ist.)
Parameter
startTime:Number (default = 0) — Die ursprüngliche Position in Millisekunden, ab der die Wiedergabe gestartet werden soll.
|
|
loops:int (default = 0) — Definiert, wie oft ein Sound als Schleife vom Wert startTime aus wiedergegeben wird, bevor die Wiedergabe im Soundkanal beendet wird.
|
|
sndTransform:SoundTransform (default = null) — Das ursprüngliche SoundTransform-Objekt, das dem Soundkanal zugewiesen wurde.
|
SoundChannel — Ein SoundChannel-Objekt, über das der Sound gesteuert werden kann. Wenn Sie über keine Soundkarte verfügen oder keine Soundkanäle mehr vorhanden sind, gibt diese Methode null zurück. Die maximale Anzahl der gleichzeitig verfügbaren Soundkanäle ist 32.
|
Siehe auch
Der Konstruktor ruft die Sound.load()-Methode auf, mit dem Laden der Audiodaten zu beginnen. Als Nächstes wird die Sound.play()-Methode aufgerufen, die mit dem Abspielen des Sounds beginnt, sobald genügend Daten geladen wurden. Die Sound.play()-Methode gibt ein SoundChannel-Objekt zurück, das zur Steuerung der Audiowiedergabe verwendet werden kann. Im Textfeld werden die Anweisungen angezeigt. Um sicherzustellen, dass der Inhalt bis zu dem Punkt, ab dem der Benutzer das Audio abspielen möchte, bereits geladen wurde, wird das Sprite-Objekt bar erstellt und angezeigt, nachdem die Datei geladen wurde. Wenn die Datei erfolgreich geladen wurde, wird ein Event.COMPLETE-Ereignis ausgelöst, welches die Methode completeHandler() auslöst. Die completeHandler()-Methode erstellt dann den Balken und fügt ihn der Anzeigeliste hinzu. (Anstelle eines Shape-Objekts wird ein Sprite-Objekt verwendet, um Interaktivität zu unterstützen.) Wenn der Benutzer auf den Balken klickt, wird die clickHandler()-Methode ausgelöst.
In der clickHandler()-Methode wird die Position der x-Koordinate des Benutzerklicks, event.localX, verwendet, um festzustellen, an welcher Stelle der Benutzer mit dem Abspielen der Datei beginnen möchte. Da der Balken 100 Pixel groß ist und bei der x-Koordinate 100 Pixel beginnt, ist es einfach, den Prozentwert der Position festzustellen. Da die Datei geladen wurde, hat der Wert der length-Eigenschaft der Audiodatei die Länge der gesamten Datei in Millisekunden. Anhand der Länge der Audiodatei und der Position in der Linie wird eine Startposition der Audiodatei bestimmt. Nach dem Stoppen des Sounds wird die Audiodatei an der ausgewählten Startposition neu gestartet, die als startTime-Parameter an die play()-Methode übergeben wird.
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;
}
}
}
Im Konstruktor wird der Sound geladen und es wird ein einfaches rechteckiges Sprite-Objekt, button, erstellt. (Anstelle eines Shape-Objekts wird ein Sprite-Objekt verwendet, um Interaktivität zu unterstützen.) (Hier wird davon ausgegangen, dass sich die Audiodatei im selben Verzeichnis wie die SWF-Datei befindet). (Für dieses Beispiel wurde keine Fehlerverarbeitung geschrieben.)
Zwei Ereignis-Listener werden eingerichtet, um auf einfache Mausklicks und auf Doppelklicks zu warten. Wenn der Benutzer ein Mal klickt, wird die clickHandler()-Methode, die den Sound abspielt, aufgerufen. Wenn der Benutzer auf die Schaltfläche doppelklickt, wird die doubleClickHandler()-Methode, die die Audiodatei zwei Mal abspielt, aufgerufen. Das zweite Argument der play()-Methode wird auf 1 gesetzt, was bedeutet, dass die Wiedergabe nach dem ersten Abspielen bei der Startzeit des Sounds erneut beginnt. Die Startzeit, das erste Argument, wird auf 0 gesetzt, was bedeutet, dass die Datei ab dem Anfang abgespielt wird.
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);
}
}
}
Die Datei wird im Konstruktor in einen try...catch-Block geladen, um Fehler abzufangen, die möglicherweise beim Laden der Datei auftreten. Dem Sound-Objekt wird ein Listener hinzugefügt, der auf ein IOErrorEvent-Ereignis reagiert, indem die errorHandler()-Methode aufgerufen wird. Für die Hauptanwendung wird ein weiterer Listener hinzugefügt, der auf ein Event.ENTER_FRAME-Ereignis reagiert, das als Zeitgeber für die Anzeige des Abspielfortschritts verwendet wird. Schließlich wird ein dritter Listener für den Audiokanal hinzugefügt, der auf ein iEvent.SOUND_COMPLETE-Ereignis reagiert (wenn die Audiodatei vollständig abgespielt wurde), indem er die soundCompleteHandler()-Methode aufruft. Die soundCompleteHandler()-Methode entfernt auf den Ereignis-Listener für das Ereignis Event.ENTER_FRAME.
Die enterFrameHandler()-Methode teilt den bytesLoaded-Wert, der mit dem ProgressEvent-Objekt übergeben wird, durch den bytesTotal-Wert, um den Prozentwert der Audiodaten, die geladen wurden, zu bestimmen. Der Prozentwert der Audiodaten, die abgespielt wurde, kann ermittelt werden, indem der Wert der position-Eigenschaft des Audiokanals durch die Länge der Audiodaten geteilt wird. Wenn die Audiodaten jedoch nicht vollständig geladen wurden, zeigt die length-Eigenschaft des Sound-Objekts nur die Größe der zurzeit geladenen Daten an. Eine Schätzung der endgültigen Größe der Audiodatei wird berechnet, indem der Wert der length-Eigenschaft des aktuellen Sound-Objekts durch den Wert der bytesLoaded-Eigenschaft geteilt durch den Wert der bytesTotal-Eigenschaft geteilt wird.
Beachten Sie, dass für den Fall, dass die Datei klein ist, im Cache gespeichert ist oder sich im lokalen Verzeichnis befindet, der Ladefortschritt möglicherweise nicht bemerkbar ist. Die Verzögerung zwischen dem Beginn des Ladevorgangs der Audiodaten und dem Beginn der Wiedergabe der geladenen Daten wird bestimmt durch den Wert der SoundLoaderContext.buffertime-Eigenschaft, der standardmäßig 1000 Millisekunden beträgt und zurückgesetzt werden kann.
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 | Ereignis |
flash.events.Event flash.events.Event.COMPLETE | Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Wird nach dem erfolgreichen Laden von Daten ausgelöst.
Definiert den Wert der Eigenschafttype eines complete-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Netzwerkobjekt, dessen Ladevorgang beendet ist. |
Siehe auch
| id3 | Ereignis |
flash.events.Event flash.events.Event.ID3 | Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Wird durch ein Sound-Objekt ausgelöst, wenn ID3-Daten für einen MP3-Sound verfügbar sind.
Definiert den Wert der Eigenschafttype eines id3-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Sound-Objekt, über das die MP3-Datei geladen wird, für die nun ID3-Daten verfügbar sind. Das unter target angegebene Ziel ist nicht immer das Objekt in der Anzeigeliste, in der der Ereignis-Listener registriert wurde. Mit der Eigenschaft currentTarget können Sie auf das Objekt in der Anzeigeliste zugreifen, das das Ereignis derzeit verarbeitet. |
Siehe auch
| ioError | Ereignis |
flash.events.IOErrorEvent flash.events.IOErrorEvent.IO_ERROR | Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Wird beim Auftreten eines Eingabe/Ausgabe-Fehlers ausgelöst, durch den der Ladevorgang fehlschlägt.
Definiert den Wert der Eigenschafttype eines ioError-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Netzwerkobjekt, bei dem der Eingabe/Ausgabe-Fehler auftritt. |
text | Der als Fehlermeldung anzuzeigende Text. |
Siehe auch
| open | Ereignis |
flash.events.Event flash.events.Event.OPEN | Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Wird beim Start eines Ladevorgangs ausgelöst.
Definiert den Wert der Eigenschafttype eines open-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Das Netzwerkobjekt, über das eine Verbindung geöffnet wurde. |
Siehe auch
| progress | Ereignis |
flash.events.ProgressEvent flash.events.ProgressEvent.PROGRESS | Sprachversion : | ActionScript 3.0 |
| Player-Version : | Flash Player 9 |
Wird ausgelöst, wenn während eines Ladevorgangs Daten empfangen werden.
Definiert den Wert der Eigenschafttype eines progress-Ereignisobjekts.
Dieses Ereignis verfügt über die folgenden Eigenschaften:
| Eigenschaft | Wert |
|---|---|
bubbles | false |
bytesLoaded | Die Anzahl der geladenen Elemente oder Byte zu dem Zeitpunkt, zu dem der Listener das Ereignis verarbeitet. |
bytesTotal | Die Gesamtanzahl der Elemente oder Byte, die bei einem erfolgreichen Ladevorgang schließlich geladen werden. |
cancelable | false. Es gibt kein Standardverhalten, das abgebrochen werden kann. |
currentTarget | Das Objekt, welches das Ereignisobjekt aktiv mit einem Ereignis-Listener verarbeitet. |
target | Der Protokollierungsstatus des Netzwerkobjekts. |
Siehe auch
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);
}
}
}
Eine E-Mail an mich senden, wenn dieser Seite Kommentare hinzugefügt werden | Kommentarbericht
Aktuelle Seite: http://livedocs.adobe.com/flash/9.0_de/ActionScriptLangRefV3/flash/media/Sound.html