一、播放媒體文件
Java SE中提供了內置的MediaPlayer類來播放音頻和視頻文件。以下是播放音頻文件的示例:
import java.io.*; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; public class PlayAudio { public static void main(String[] args) { String bip = "sound.wav"; Media hit = new Media(new File(bip).toURI().toString()); MediaPlayer mediaPlayer = new MediaPlayer(hit); mediaPlayer.play(); } }
上面代碼中,首先定義bip變量表示音頻文件,然後使用Media類加載音頻文件,最後使用MediaPlayer類播放音頻文件。
二、播放音頻流
除了播放音頻文件,Java SE 中同樣提供了API來播放音頻流。以下是播放音頻流的示例:
import java.net.URL; import javax.sound.sampled.*; public class PlayStream { public static void main(String[] args) throws Exception { URL url = new URL("http://mp3-stream.example.com/stream.mp3"); AudioInputStream in = AudioSystem.getAudioInputStream(url); Clip clip = AudioSystem.getClip(); clip.open(in); clip.start(); } }
上面代碼中,定義了一個URL來表示音頻流地址,然後使用AudioSystem類加載音頻流,並使用Clip類來播放音頻流。
三、通過JavaFX GUI播放音頻
JavaFX是Java平台上一個用於創建富客戶端應用程序的框架。它提供了一組API來創建呈現富媒體內容的用戶界面。以下是通過JavaFX GUI播放音頻的示例:
import javafx.application.Application; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.stage.Stage; public class PlayAudioFX extends Application { @Override public void start(Stage primaryStage) { String bip = "sound.wav"; Media hit = new Media(new File(bip).toURI().toString()); MediaPlayer mediaPlayer = new MediaPlayer(hit); mediaPlayer.play(); } public static void main(String[] args) { launch(args); } }
上面代碼中,創建了一個JavaFX應用程序並在主函數中調用launch方法啟動應用程序。MediaPlayer類同樣可以使用JavaFX GUI MediaPlayer類以播放音頻。
四、使用第三方庫
Java中有許多第三方庫可以支持音頻的處理,比如JLayer、JavaZoom等。這些庫提供了更多的功能和更高效的方法。以下是使用JLayer庫播放音頻的示例:
import javazoom.jl.decoder.JavaLayerException; import javazoom.jl.player.Player; import java.io.FileInputStream; import java.io.FileNotFoundException; public class PlayAudioJLayer { public static void main(String[] args) throws FileNotFoundException, JavaLayerException { FileInputStream fis = new FileInputStream("sound.mp3"); Player player = new Player(fis); player.play(); } }
上面代碼中,JLayer庫提供了Player類,它接收一個輸入流以播放音頻文件。這裡使用了Java流來讀取音頻文件。
五、處理音頻
Java SE提供了API來處理音頻。可以使用Java中的API對音頻進行播放、剪輯、混合、轉換等各種操作。以下是Java音頻處理的示例:
import javax.sound.sampled.*; import java.io.*; public class AudioProcessor { public static void main(String[] args) throws Exception { AudioInputStream stream1 = AudioSystem.getAudioInputStream(new File("sound1.wav")); AudioInputStream stream2 = AudioSystem.getAudioInputStream(new File("sound2.wav")); AudioInputStream clip1 = AudioSystem.getAudioInputStream(new File("clip1.wav")); AudioInputStream mixedStreams = new MixingAudioInputStream( stream1.getFormat(), Arrays.asList(stream1, stream2) ); AudioInputStream mixedStreamsAndClip1 = new MixingAudioInputStream( mixedStreams.getFormat(), Arrays.asList(mixedStreams, clip1) ); AudioSystem.write(mixedStreamsAndClip1, AudioFileFormat.Type.WAVE, new File("mixed.wav")); } }
上面代碼中,創建了一個AudioProcessor類來處理音頻。使用AudioSystem類加載音頻文件,然後使用MixingAudioInputStream來混合音頻流並將其寫入文件。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184522.html