Prehrávanie zvukových súborov v aplikáciách Java nie je v aktuálnom vydaní Java oficiálne podporované. Ale nebojte sa, existuje spôsob! Tento tip vám ukáže, ako - počnúc popisom základných krokov pri prehrávaní zvukových klipov v appletoch Java a následným prechodom k podpore aplikácií Java.
Prehrávanie zvukových klipov v appletoch je celkom jednoduché a vyžaduje nasledujúce kroky:
- Vytvorte objekt AudioClip
- Načítajte zvukový súbor .au do priečinka AudioClip
- Prehrávajte zvuky naraz alebo opakovane
- Zastaviť prehrávanie
Takto vyzerá kód týchto krokov:
import java.applet. *; AudioClip ac = getAudioClip (getCodeBase (), soundFile); ac.play (); // prehrať raz ac.stop (); // prestať hrať ac.loop (); // hrať nepretržite
Zdá sa logické použiť tento istý kód na prehrávanie zvukových klipov v aplikácii Java. Ak to urobíte, budete bohužiaľ dostávať chyby z kompilátora. Prečo? Pretože AudioClip
objekt a getAudioClip ()
metóda sú súčasťou java.applet balík - a nie sú súčasťou aplikácií. Dobrá správa je, že sa môžeme ponoriť a nechať veci fungovať sami.
Trik na riešenie tohto problému je niektoré použiť nezdokumentovaný funkcie, ktoré poskytuje spoločnosť Sun vo svojom JDK. Nahliadnutie dovnútra triedy.zip súbor zo Sun JDK (pomocou ktoréhokoľvek z rôznych obslužných programov zipfile), nájdeme nielen štandardné Java balíčky ako napr. java.applet ale tiež slnko.zvuk. (Sú v adresári sun / audio.)
The slnko.zvuk balíček obsahuje všetko, čo potrebujeme, aby sme mohli prehrávať zvukové klipy! Tu je kód:
import sun.audio. *; // import balíka sun.audio import java.io. *; // ** podľa potreby to pridajte do kódu aplikácie // Otvorte vstupný prúd do zvukového súboru. InputStream in = nový FileInputStream (názov súboru); // Vytvorte objekt AudioStream zo vstupného toku. AudioStream ako = nový AudioStream (v); // Na prehranie // klipu použite statického člena triedy „player“ z triedy AudioPlayer. AudioPlayer.player.start (ako); // Podobne zastavíte zvuk. AudioPlayer.player.stop (ako);
Ak chcete použiť adresu URL ako zdroj zvukového streamu, nahraďte nasledujúci vstupný prúd a nastavenie zvukového streamu:
AudioStream ako = nový AudioStream (url.openStream ());
Nepretržité prehrávanie zvukového streamu dodáva ešte väčšiu zložitosť:
// Vytvorte zvukový stream, ako už bolo uvedené. // Vytvorenie zdroja AudioData. AudioData data = as.getData (); // Vytvorenie ContinuousAudioDataStream. ContinuousAudioDataStream cas = nový ContinuousAudioDataStream (dáta); // Prehrávanie zvuku. AudioPlayer.player.play (cas); // Podobne zastavíte zvuk. AudioPlayer.player.stop (cas);
A tu to máte. Pamätajte, že táto technika využíva nedokumentované funkcie; neexistujú žiadne záruky, že to bude fungovať s čímkoľvek, okrem súčasného Sun JDK.
Chong Ser Wah je konzultantom v Competence Center for Java v Singapure. Prezrite si súťaž Java Cup v centre.Tento príbeh, „Java Tip 24: Ako prehrávať zvuk v aplikáciách“, bol pôvodne publikovaný spoločnosťou JavaWorld.