Isonjululwe: Zidlalwa njani izandi kwi-java

Uhlaziyo lokugqibela: 06/19/2023

Zidlalwa njani izandi Kweli nqaku, siza kuntywila ekudlaleni izandi kwiJava, ingxaki eqhelekileyo ejongene nabaphuhlisi xa besakha usetyenziso olwahlukeneyo, olufana nemidlalo kunye nabadlali bemultimedia. Siza kuxubusha isisombululo sesinyathelo ngesinyathelo, sihlolisise iilayibrari ezifunekayo ukuze sifeze lo msebenzi, kwaye sinikeze inkcazo enzulu yekhowudi. IJava, eyaziwa ngokuguquguquka kwayo kunye nokusebenziseka ngokulula, ixhotyiswe ngamathala eencwadi ahlukeneyo anokunceda abaphuhlisi baphucule ukusebenza kunye nobuchule bezicelo zabo. Enye indawo ebalulekileyo enjalo ibandakanya inkxaso yesandi kunye nesandi.

Intshayelelo kwiJava Sound API

I-Java Sound API sisixhobo esinamandla esilungiselelwe ukubonelela ngenkxaso yesandi kuwo wonke amaqonga. Iza ihlanganiswe neJava Development Kit (JDK) kwaye yenza abaphuhlisi badlale, barekhode kwaye baqhube iifayile zeaudio kwiifomathi ezahlukeneyo. Kule nqaku, siza kugxininisa kwiziseko zokudlala isandi kwizicelo zeJava usebenzisa iiklasi ze-AudioClip kunye ne-AudioSystem, eziyingxenye yeJava Sound API.

IJava Sound API inokwahlulwa ngokweepakethe ezimbini eziphambili: i-javax.sound.sampled kwaye javax.sound.midi. Ipakethe eyisampula isetyenziselwa ukuphatha imisebenzi esisiseko ye-audio efana nokudlala, ukurekhoda, kunye nokudibanisa idatha ye-audio, ngelixa iphakheji ye-midi yenzelwe ukulawula iingoma zomculo ezisekelwe kwi-MIDI kunye neengoma zomsindo.

Ukudlala Izandi usebenzisa iAudioClip

Ukuqala, makhe sijonge indlela yokudlala iifayile zesandi usebenzisa i AudioClip interface, eyinxalenye ye java.applet ipakethe. Nangona ujongano lweAudioClip lwaqale lwenzelwe iiapplets, lusabalulekile kwaye luluncedo ekudlaleni iifayile zeaudio ezincinci kwizicelo zeJava.

import java.applet.AudioClip;
import java.net.URL;
public class SoundPlayer {
    public static void main(String[] args) {
        AudioClip sound;
        URL soundURL = SoundPlayer.class.getResource("sound.wav");
        sound = java.applet.Applet.newAudioClip(soundURL);
        sound.play();
    }
}

Kwisiqwengana sekhowudi esingentla, singenise ngaphandle i AudioClip interface kunye ne URL iklasi. Ezi klasi zisivumela ukuba silayishe iresource yeaudio kwaye siyidlale sisebenzisa indlela yokudlala () yomzekelo weAudioClip. Ukusebenzisa i-AudioClip, qiniseka ukubeka ifayile ethi "sound.wav" kuluhlu olufanayo njengefayile yakho yeJava okanye unikeze indlela yefayile echanekileyo.

Nangona kunjalo, ukuba usebenza ngeefayile zeaudio ezinkulu okanye ufuna ulawulo oluphucukileyo ngaphezulu kokudlala kwakhona, i-AudioClip interface isenokungonelanga, kwaye kuya kufuneka ucinge ngokusebenzisa iklasi ye-AudioSystem.

Ukudlala izandi usebenzisa iklasi ye-AudioSystem

The Inkqubo yeAudio iklasi yinxalenye yephakheji ye-javax.sound.sampled kwaye ibonelela ngezakhono zokudlala ezirekhodiweyo eziphambili. Lo mzekelo ulandelayo ubonisa indlela yokudlala ifayile yeaudio usebenzisa iklasi yeAudioSystem:

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.File;
import java.io.IOException;

public class SoundPlayer {
    public static void main(String[] args) {
        try {
            File soundFile = new File("sound.wav");
            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(soundFile);
            Clip clip = AudioSystem.getClip();
            clip.open(audioInputStream);
            clip.start();

            // Keep the application running till the sound is played completely
            Thread.sleep(clip.getMicrosecondLength() / 1000);
        } catch(LineUnavailableException | UnsupportedAudioFileException | IOException | InterruptedException e) {
            e.printStackTrace();
        }
    }
}

Kulo mzekelo, singenise kuqala iiklasi ezifunekayo kunye nojongano olusuka kwi i-javax.sound.sampled ipakethe. Emva koko, senze i AudioInputStream into yokufunda idata evakalayo kwifayile, kunye a Isiqeshana umzekelo ukubamba idata yesandi kwinkumbulo. Emva kokuvula ikliphu, sabiza isiqalo () indlela yokudlala isandi.

Le ndlela ibonelela ngolawulo oluthe kratya ekudlalweni komsindo, kubandakanywa ukukwazi ukunqumama, ukuqalisa kwakhona, iluphu, kunye nokumisa isandi, isenze silungele uluhlu olubanzi lwezicelo.

Ukushwankathela, sixoxe ngeendlela ezimbini ezahlukeneyo zokudlala izandi kwiJava usebenzisa iiklasi ze-AudioClip kunye ne-AudioSystem. I-AudioClip interface ifanelekile kwiifayile ezincinci zeaudio kwizicelo ezilula, ngelixa iklasi ye-AudioSystem inikezela ngekhono lokudlala elivakalayo lokudlala kwiimeko ezinzima ngakumbi. Ukusebenzisa amathala eencwadi anamandla eJava kuqinisekisa ukusebenza kwesandi esingenamthungo kunye namava awongezelelweyo omsebenzisi kuzo zonke iinkqubo ezahlukeneyo.

Izithuba ezihambelanayo: