Clip 类是不是适合“大量使用”?

Posted

技术标签:

【中文标题】Clip 类是不是适合“大量使用”?【英文标题】:Is the Clip class appropriate for 'heavy use'?Clip 类是否适合“大量使用”? 【发布时间】:2014-04-21 16:50:16 【问题描述】:

我正在开发一个播放一系列Clips (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 类是不是适合“大量使用”?的主要内容,如果未能解决你的问题,请参考以下文章

1.5 Linux中大量使用脚本语言,而不是C语言!

有没有适合 Android 开发初学者的 App 源码推荐

什么时候适合使用虚方法?

你应该知道的 5 个 Docker 工具

你应该知道的 5 个 Docker 工具

你应该知道的 5 个 Docker 工具