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.