Programmēšana

Java 24. padoms: kā atskaņot audio lietojumprogrammās

Audio failu atskaņošana Java lietojumprogrammās pašreizējā Java laidienā netiek oficiāli atbalstīta. Bet nebaidieties, ir veids, kā! Šis padoms jums parādīs, kā - sākot ar galveno darbību aprakstu, kas saistīti ar audio klipu atskaņošanu Java sīklietotnēs, un pēc tam pāriet uz Java lietojumprogrammu atbalstu.

Audio klipu atskaņošana sīklietotnēs ir diezgan vienkārša un ietver šādas darbības:

  • Izveidojiet objektu AudioClip
  • Ielādējiet .au skaņas failu AudioClip
  • Atskaņojiet skaņas vienreiz vai turpiniet nepārtraukti
  • Pārtraukt atskaņošanu

Lūk, kā izskatās šo darbību kods:

importēt java.applet. *; AudioClip ac = getAudioClip (getCodeBase (), soundFile); ac.play (); // spēlē vienreiz ac.stop (); // pārtraukt spēlēt ac.loop (); // spēlē nepārtraukti 

Šķiet loģiski izmantot šo pašu kodu, lai atskaņotu audio klipus Java lietojumprogrammā. Diemžēl, ja to izdarīsit, no sastādītāja saņemsiet kļūdas. Kāpēc? Tāpēc ka AudioClip objekts un getAudioClip () metode ir daļa no java.applet pakotne - un nav daļa no lietojumprogrammām. Labā ziņa ir tā, ka mēs paši varam nirt un likt lietām darboties.

Šīs problēmas risināšanas triks ir izmantot dažus bez dokumentiem funkcijas, kuras Sun nodrošina savā JDK. Palūrēt iekšā klases.zip failu no Sun JDK (izmantojot jebkuru no dažādām zipfile utilītprogrammām), mēs atrodam ne tikai standarta Java pakotnes, piemēram, java.applet bet arī sun.audio. (Tie ir direktorijā sun / audio.)

The sun.audio paketē ir viss nepieciešamais, lai varētu atskaņot audio klipus! Šeit ir kods:

importa sun.audio. *; // importēt sun.audio pakotni importēt java.io. *; // ** pēc vajadzības pievienojiet to lietojumprogrammas kodam // Atveriet audio faila ievades straumi. InputStream in = jauns FileInputStream (faila nosaukums); // Izveidojiet AudioStream objektu no ievades straumes. AudioStream kā = jauns AudioStream (in); // Izmantojiet statisko klases dalībnieka "atskaņotāju" no klases AudioPlayer, lai atskaņotu // klipu. AudioPlayer.player.start (as); // Līdzīgi, lai apturētu audio. AudioPlayer.player.stop (as); 

Lai kā audio straumes avotu izmantotu vietrādi URL, ievades straumes un audio straumes iestatīšanai aizstājiet šo:

AudioStream kā = jauns AudioStream (url.openStream ()); 

Audio straumes nepārtraukta atskaņošana papildina mazliet sarežģītību:

// Izveidojiet audio straumi, kā tika apspriests iepriekš. // Izveidot AudioData avotu. AudioData dati = as.getData (); // Izveidot ContinuousAudioDataStream. ContinuousAudioDataStream cas = jauns ContinuousAudioDataStream (dati); // Atskaņot audio. AudioPlayer.player.play (cas); // Līdzīgi, lai apturētu audio. AudioPlayer.player.stop (cas); 

Un tur jums tas ir. Atcerieties, ka šajā tehnikā tiek izmantotas nedokumentētas funkcijas; nav garantiju, ka tas darbosies ar kaut ko citu, izņemot pašreizējo Saules JDK.

Chong Ser Wah ir konsultants Java kompetences centrā Singapūrā. Apskatiet centra Java kausa izcīņu.

Šo stāstu “Java Tip 24: Kā atskaņot audio lietojumprogrammās” sākotnēji publicēja JavaWorld.

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