Löst: Hur man spelar ljud på java

Senaste uppdateringen: 06/19/2023
Författare: Java SourceTrail

Hur man spelar ljud på I den här artikeln kommer vi att dyka ner i att spela upp ljud i Java, ett vanligt problem som utvecklare möter när de bygger olika applikationer, som spel och multimediaspelare. Vi kommer att diskutera en steg-för-steg-lösning, utforska de bibliotek som behövs för att utföra denna uppgift och ge en djupgående förklaring av koden. Java, känt för sin mångsidighet och användarvänlighet, är utrustad med olika bibliotek som kan hjälpa utvecklare att förbättra funktionaliteten och kapaciteten hos sina applikationer. Ett sådant betydande område inkluderar ljud- och ljudstöd.

Introduktion till Java Sound API

Java Sound API är en kraftfull verktygslåda utformad för att ge ljudstöd på alla plattformar. Den levereras med Java Development Kit (JDK) och gör det möjligt för utvecklare att spela, spela in och bearbeta ljudfiler i olika format. I den här artikeln kommer vi att fokusera på grunderna för att spela ljud i Java-applikationer med klasserna AudioClip och AudioSystem, som är en del av Java Sound API.

Java Sound API kan kategoriseras i två primära paket: javax.sound.sampled och javax.sound.midi. Det samplade paketet används för att hantera grundläggande ljudfunktioner som att spela, spela in och syntetisera ljuddata, medan midi-paketet är designat för att hantera MIDI-baserade musikkompositioner och ljudspår.

Spela upp ljud med AudioClip

Till att börja med, låt oss utforska hur man spelar upp ljudfiler med hjälp av Ljudklipp gränssnitt, som är en del av java.applet paket. Även om AudioClip-gränssnittet ursprungligen skapades för appletar, är det fortfarande relevant och användbart för att spela upp små ljudfiler i Java-applikationer.

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

I kodavsnittet ovan har vi importerat Ljudklipp gränssnitt och URL klass. Dessa klasser tillåter oss att ladda en ljudresurs och spela upp den med metoden play() för AudioClip-instansen. För att använda ett AudioClip, se till att placera filen "sound.wav" i samma katalog som din Java-fil eller ange rätt sökväg.

Men om du arbetar med större ljudfiler eller behöver mer sofistikerad kontroll över uppspelningen kanske AudioClip-gränssnittet inte är tillräckligt, och du bör överväga att använda klassen AudioSystem.

Spela upp ljud med AudioSystem-klassen

Ocuco-landskapet Ljudsystem class är en del av javax.sound.sampled-paketet och ger mer avancerade ljuduppspelningsmöjligheter. Följande exempel visar hur man spelar upp en ljudfil med klassen 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();
        }
    }
}

I det här exemplet importerade vi först de obligatoriska klasserna och gränssnitten från javax.sound.sampled paket. Sedan skapade vi en AudioInputStream objekt för att läsa ljuddata från filen, och a Clip instans för att lagra ljuddata i minnet. Efter att ha öppnat klippet anropade vi start()-metoden för att spela upp ljudet.

Detta tillvägagångssätt ger mer kontroll över ljuduppspelningen, inklusive möjligheten att pausa, återuppta, loopa och stoppa ljudet, vilket gör det lämpligt för ett brett spektrum av applikationer.

För att sammanfatta diskuterade vi två olika metoder för att spela upp ljud i Java med hjälp av klasserna AudioClip och AudioSystem. AudioClip-gränssnittet är lämpligt för små ljudfiler i enkla applikationer, medan AudioSystem-klassen erbjuder avancerade ljuduppspelningsmöjligheter för mer komplexa scenarier. Att utnyttja Javas kraftfulla bibliotek säkerställer sömlös ljudfunktionalitet och en förbättrad användarupplevelse i olika applikationer.

Relaterade inlägg: