簡體   English   中英

如何在 java 中播放 wav 文件?

[英]How to play wav file in java?

我知道這是一個已經提出的問題,但我無法得到答案

我找到了這種播放聲音的方法:

  Clip sound = AudioSystem.getClip();
  sound.open(AudioSystem.getAudioInputStream(new File("path/to/sound")));
  sound.start();

但問題是我在游戲循環中運行這段代碼,我想以某種方式構造它,這樣我就不需要每次都從輸入中讀取聲音,但已經將聲音保存在 memory 中,所以我不必每次都加載它。

我試着做這樣的事情:

 Clip sound = AudioSystem.getClip();
 sound.open(AudioSystem.getAudioInputStream(new File("path/to/sound")));

while(true)
{
 sound.start();


}

也喜歡這個

AudioStream audiostream = AudioSystem.getAudioInputStream(new File("path/to/sound"));
while(true)
{
     Clip sound = AudioSystem.getClip();
     sound.open(AudioSystem.getAudioInputStream(audiostream));
     sound.start();
}

但它不起作用,或者它只起作用 1 次

創建實例變量是 go 的好方法。

要再次播放聲音,首先將幀 position 設置為第 0 幀或毫秒。 play() 方法總是從聲音停止的地方開始。

因此:

while(true) {
    sound.setFramePosition(0);
    sound.play();
    ...
}

剪輯(Java SE 15 和 JDK 15)

可以使用 start 和 stop 方法開始和停止音頻剪輯的播放。 這些方法不會重置媒體 position; start 導致從上次停止播放的 position 繼續播放。 要從剪輯的音頻數據的開頭重新開始播放,只需使用 setFramePosition(0) 調用 stop,這會將媒體倒回到剪輯的開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM