我正在制作一个播放一系列Clip
s(clip.start()
)的节目,平均每秒播放一次。
意味着剪辑已启动,一秒后它将停止并启动另一个剪辑,依此类推大约10个剪辑。
结果并不流畅,有些片段甚至没有开始或没有被听到。
我的问题:Clip类是否适合这种事情?或者是不应该处理的剪辑被非常频繁地停止和启动?
如果Clip不合适,您是否可以为此目的建议替代类或库?或者也许是一些关于如何使用Clips的指导方针,所以我所说的会流畅地工作? (也许是关于线程或其他东西)。
答案 0 :(得分:0)
我对Java中的音频没有太多经验,但我对Clips的体验很差。我发现由于某种原因,重新启动一个不可接受的剪辑需要花费半秒钟的时间(发现一些显然与此问题有关的旧错误,但也许这是我当时的一个新错误正在调查它)。带有用于保存整个声音的缓冲区的SourceDataLine对我来说效果更好。
但是,我建议TinySound,这是一个有效的简单抽象。
以下是他们页面中的示例:
//initialize TinySound
TinySound.init();
//load a sound and music
//note: you can also load with Files, URLs and InputStreams
Music song = TinySound.loadMusic("song.wav");
Sound coin = TinySound.loadSound("coin.wav");
//start playing the music on loop
song.play(true);
//play the sound a few times in a loop
for (int i = 0; i < 20; i++) {
coin.play();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
}
//be sure to shutdown TinySound when done
TinySound.shutdown();