Klasa Sound umożliwia pracę z dźwiękami. Klasa Sound umożliwia tworzenie obiektu Sound, ładowanie i odtwarzanie zewnętrznego pliku MP3 w tym obiekcie, zamykanie strumienia dźwięku oraz dostęp do danych o dźwięku, takich jak informacje o liczbie bajtów w strumieniu, czy metadane ID3. Bardziej szczegółową kontrolę nad dźwiękiem uzyskuje się przez źródło dźwięku — obiekt SoundChannel lub obiekt Microphone dla dźwięku — oraz przez właściwości klasy SoundTransform, która kontroluje sygnał wyjściowy kierowany do głośników komputera.
W programie Flash Player 10 i wersjach późniejszych można również korzystać z tej klasy w celu pracy z dźwiękami generowanymi dynamicznie. W takim przypadku program Flash Player korzysta z funkcji przypisanej do modułu obsługi zdarzeń sampleData
w celu odpytywania danych dźwięków. Dźwięk jest odtwarzany w miarę jego odbierania z obiektu ByteArray, do którego wprowadzane są dane dźwięków. Za pomocą metody Sound.extract()
można wyodrębniać dźwięki z obiektu Sound, a następnie można modyfikować dźwięki przed ponownym zapisaniem ich w strumieniu w celu odtworzenia.
Aby kontrolować dźwięki osadzone w pliku SWF, należy skorzystać z właściwości klasy SoundMixer.
Uwaga: interfejs API klasy Sound w języka ActionScript 3. różni się od interfejsu użytego w języku ActionScript 2.0. W ActionScript 3.0 nie ma możliwości porządkowania obiektów dźwięku w hierarchię w celu kontrolowania ich właściwości.
Korzystając z tej klasy, należy wziąć pod uwagę następujący model zabezpieczeń programu Flash Player (nie obowiązuje w przypadku dźwięków generowanych dynamicznie):
- Ładowanie i odtwarzanie dźwięku nie jest dozwolone, jeśli wywołujący plik SWF znajduje się w sieciowym obszarze izolowany, a ładowany plik dźwiękowy jest lokalny.
- Domyślnie ładowanie i odtwarzanie dźwięku nie jest dozwolone, jeśli wywołujący plik SWF jest lokalny i podejmuje próby załadowania i odtworzenia dźwięku z lokalizacji zdalnej. Użytkownik musi jawnie nadać uprawnienie, aby zezwolić na tego typu dostęp.
- Niektóre operacje obsługujące dźwięk mają ograniczony dostęp. Plik SWF, znajdujący się w innej domenie, nie może uzyskać dostępu do danych w ładowanym dźwięku, chyba że zostanie zaimplementowany plik reguł URL. Interfejsami API powiązanymi z obiektem Sound podlegającymi temu ograniczeniu są właściwość
Sound.id3
metodaSoundMixer.computeSpectrum()
, właściwośćSoundMixer.bufferTime
i klasaSoundTransform
.
Listing
off.addEventListener(MouseEvent.CLICK, stopMusic1);
onn.addEventListener(MouseEvent.CLICK, startMusic1);
//zmienne Song i Sound1
var Song:SoundChannel;
var Sound1:Sound;
//sciezka do pliku
var req:URLRequest = new URLRequest("bleach.mp3");
//tworzenie nowego obiektu
Sound1 = new Sound();
Sound1.load(req);
function stopMusic1(event:MouseEvent):void{
Song.stop();
}
function startMusic1(event:MouseEvent):void{
Song = Sound1.play();
}