Clip 类是不是适合“大量使用”?
Posted
技术标签:
【中文标题】Clip 类是不是适合“大量使用”?【英文标题】:Is the Clip class appropriate for 'heavy use'?Clip 类是否适合“大量使用”? 【发布时间】:2014-04-21 16:50:16 【问题描述】:我正在开发一个播放一系列Clip
s (clip.start()
) 的程序,平均每秒播放一个。
意味着一个剪辑开始,一秒钟后它停止并开始另一个剪辑,依此类推,持续大约 10 个剪辑。
结果并不“流畅”,有些片段甚至没有开始播放或听不到。
我的问题:Clip 类适合这种事情吗?还是不应该处理频繁停止和启动的剪辑?
如果 Clip 不合适,您是否可以为此建议其他类或库?或者也许一些关于如何使用 Clips 的指南,以便我描述的内容可以流畅地工作? (也许关于线程或其他东西)。
【问题讨论】:
【参考方案1】:我在 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();
【讨论】:
以上是关于Clip 类是不是适合“大量使用”?的主要内容,如果未能解决你的问题,请参考以下文章