Programovanie

Java Tip 24: Ako prehrávať zvuk v aplikáciách

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.

$config[zx-auto] not found$config[zx-overlay] not found