我正在试着播放一种声音,它完美地循环在你看不出它什么时候开始的地方.我知道我可以用setCycleCount方法让AudioClip或MediaPlayer无限循环,这很管用.然而,音频并不是完全连续的;有非常短的一秒钟没有播放,所以当它重新开始时,它是非常明显的.我知道这不是音频文件本身的问题,因为当我在音频播放器上循环播放它时,它会完美地循环.我试过AudioClip和MediaPlayer,我试着用setOnEndOfMedia让它循环,但它们都有同样的问题.下面是一个例子:
import java.io.File;
import java.net.*;
import java.util.Scanner;
import javafx.scene.media.*;
public class AudioTest {
public static void main(String[] args) {
URI audioURI = new File("filePath").toURI();
AudioClip audio = new AudioClip(audioURI.toString());
audio.setCycleCount(AudioClip.INDEFINITE);
audio.play();
/*
setOnEndOfMedia version
MediaPlayer audio = new MediaPlayer(new Media(audioURI.toString()));
audio.setOnEndOfMedia(new Runnable() {
@Override
public void run() {
audio.seek(Duration.ZERO);
audio.play();
}
});
*/
new Scanner(System.in).next(); // to prevent the program from closing immediately
}
}
以及指向示例音频文件的链接: https://drive.google.com/file/d/1NzlqY-K7m__qXE6iKJw3H26KZ8Ql4U2n/view?usp=sharing个
我的操作系统是Windows 11,使用的是Java 17和Java FX 17.我的CPU是第11代英特尔(R)酷睿(TM)i5-1135G7. 我有什么办法可以解决这个问题吗?