Rešeno: Kako predvajati zvoke na Javi

Zadnja posodobitev: 06/19/2023

Kako predvajati zvoke V tem članku se bomo poglobili v predvajanje zvokov v Javi, kar je pogosta težava, s katero se srečujejo razvijalci pri izdelavi različnih aplikacij, kot so igre in večpredstavnostni predvajalniki. Razpravljali bomo o rešitvi po korakih, raziskali knjižnice, ki so potrebne za izvedbo te naloge, in zagotovili poglobljeno razlago kode. Java, znana po svoji vsestranskosti in enostavni uporabi, je opremljena z različnimi knjižnicami, ki lahko razvijalcem pomagajo izboljšati funkcionalnost in zmogljivosti njihovih aplikacij. Eno tako pomembnih področij vključuje zvočno in zvočno podporo.

Uvod v Java Sound API

Java Sound API je zmogljiv komplet orodij, zasnovan za zagotavljanje zvočne podpore na vseh platformah. Prihaja v paketu z Java Development Kit (JDK) in razvijalcem omogoča predvajanje, snemanje in obdelavo zvočnih datotek v različnih formatih. V tem članku se bomo osredotočili na osnove predvajanja zvoka v aplikacijah Java z uporabo razredov AudioClip in AudioSystem, ki sta del Java Sound API.

Java Sound API je mogoče razvrstiti v dva primarna paketa: javax.sound.sampled in javax.sound.midi. Vzorčeni paket se uporablja za upravljanje osnovnih zvočnih funkcij, kot so predvajanje, snemanje in sintetiziranje zvočnih podatkov, medtem ko je paket midi zasnovan za upravljanje glasbenih skladb in zvočnih posnetkov, ki temeljijo na MIDI.

Predvajanje zvokov z uporabo AudioClip

Za začetek raziščimo, kako predvajati zvočne datoteke z uporabo AudioClip vmesnik, ki je del java.applet paket. Čeprav je bil vmesnik AudioClip prvotno ustvarjen za programčke, je še vedno pomemben in uporaben za predvajanje majhnih zvočnih datotek v aplikacijah Java.

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();
    }
}

V zgornjem delčku kode smo uvozili AudioClip vmesnik in URL razred. Ti razredi nam omogočajo, da naložimo zvočni vir in ga predvajamo z uporabo metode play() instance AudioClip. Če želite uporabiti AudioClip, poskrbite, da boste datoteko »sound.wav« postavili v isti imenik kot vaša datoteka Java ali navedite pravilno pot do datoteke.

Če pa delate z večjimi zvočnimi datotekami ali potrebujete bolj izpopolnjen nadzor nad predvajanjem, vmesnik AudioClip morda ne bo zadostoval, zato razmislite o uporabi razreda AudioSystem.

Predvajanje zvokov z uporabo razreda AudioSystem

Naš Avdio sistem je del paketa javax.sound.sampled in zagotavlja naprednejše zmožnosti predvajanja zvoka. Naslednji primer prikazuje, kako predvajati zvočno datoteko z uporabo razreda AudioSystem:

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();
        }
    }
}

V tem primeru smo najprej uvozili zahtevane razrede in vmesnike iz javax.sound.sampled paket. Nato smo ustvarili AudioInputStream objekt za branje zvočnih podatkov iz datoteke in a Posnetek primerek za shranjevanje zvočnih podatkov v pomnilniku. Po odprtju posnetka smo poklicali metodo start() za predvajanje zvoka.

Ta pristop zagotavlja več nadzora nad predvajanjem zvoka, vključno z možnostjo začasne prekinitve, nadaljevanja, zanke in zaustavitve zvoka, zaradi česar je primeren za široko paleto aplikacij.

Če povzamemo, razpravljali smo o dveh različnih pristopih k predvajanju zvokov v Javi z uporabo razredov AudioClip in AudioSystem. Vmesnik AudioClip je primeren za majhne zvočne datoteke v preprostih aplikacijah, medtem ko razred AudioSystem ponuja napredne zmožnosti predvajanja zvoka za bolj zapletene scenarije. Izkoriščanje zmogljivih knjižnic Jave zagotavlja brezhibno zvočno funkcionalnost in izboljšano uporabniško izkušnjo v različnih aplikacijah.

Podobni objav: