我正在尝试编写一种方法,该方法在调用时会播放随机的 SoundFile。现在,我没有将所有 60 多个文件加载到我的处理草图中,而是使用 ArrayList 来存储文件的名称,然后使用
创建一个 SoundFile 对象SoundFile tempSound = new SoundFile(this, String Array index, false);
shuffledSound = tempSound;
tempSound = null;
有点用。当我触发随机播放方法时,它会相应地随机播放,但是在随机播放 12 次之后,我的扬声器出现大量失真和嗡嗡声。
我希望能够直接编辑
tempSound.sample = String Array index
但它被写为“受保护”,所以我无法通过处理库访问它。
我试过在主代码中调用声音文件,而不是在不同的类中,将 tempSound 设置为 null 并调用 System.gc();,将临时声音添加到它们自己的数组并将随机播放的声音设置为该索引, 编写一个特定的类来保存所有加载的声音文件,但似乎没有什么可以摆脱 12 实例失真。
我认为最好的选择是不要在每次我想随机播放时都创建一个新的 SoundFile 对象,而是编辑当前对象以反映我希望它引用的新路径。这适用于 Processing/Java 吗?
我正在研究一个例子,但进展缓慢。