如何反转SoundSample数组?

时间:2016-10-06 06:11:03

标签: java arrays reverse

我必须颠倒从thisisatest.wav文件播放的名为myWordArray的数组的顺序。它应该发挥"测试a是这个"而不是"这是一个测试。"

public void playReverseOrder(int pause) throws InterruptedException {
        Sound orig = new Sound();
        int length = myWordArray.length; 

        for (int i = 0, source = length - 1; i < length && source > 0; i++, source--) {
            myWordArray[i].setSampleValueAt(i, orig.getSampleValueAt(source));
            myWordArray[i].blockingPlay();
            Thread.sleep(pause);
        }

    }

我的逻辑是我创建了一个新的声音,然后使用长度来增加索引i,因为原始源减少了。它向前发挥,但是我无法反驳这些话。我想过在新的声音中检索myWordArray的样本(myWordArray.getSamples());但是这不起作用,我会尝试在参数中访问文件,但我们在测试工具中手动选择文件。

1 个答案:

答案 0 :(得分:0)

我假设,你的意思是test a is this。这是一个更难的问题,将在下面讨论。如果你想使它听起来像tset a si siht,你可以简单地以相反的顺序排列数组的内容。请注意,这种声音无法理解。

       myWordArray[i].blockingPlay();
       Thread.sleep(pause);

在您的代码中,我猜你不需要这个。

如果您对test a is this感兴趣,过程将是这样的:

  1. 查找声音文件中的单词数量,对音频信号处理知之甚少
  2. 标记他们的界限
  3. 现在,有一半的工作已经完成。只有剩下的部分以相反的顺序播放单词的声音。
  4. 创建另一个Sound,使用所有分段的单词填充samples数组,但是以 reverse 顺序填充。完成。