2

所以我正在使用处理制作一个音频程序,我遇到了一个小障碍,当我告诉 minim 从音频输出中删除一个音频信号(正弦波)时,它最终会发出一个小的爆裂声,我知道当声音的幅度不是时程序会删除声音,并且扬声器认为它应该尝试从声音的幅度跳到0。

当音频信号的幅度为 0 而不是每次调用信号时,我将如何去除音频信号?

主程序每 3 帧调用一次播放函数。out是和弦的。谢谢

public void play(int column){
    for (int i = 0; i < notes[column].length; i++){
      if (column == 0){ //special case when the current time indicator is 0
        if (notes[notes.length-1][i] == true && notes[column][i] == false){ // find previous notes on this row 
          out.removeSignal(sounds[i]);
        }
        if (notes[notes.length-1][i] == false && notes[column][i] == true){
          out.addSignal(sounds[i]);
        }
      }
      else{
        if (notes[column-1][i] == true && notes[column][i] == false){
          out.removeSignal(sounds[i]);
        }
        if (notes[column-1][i] == false && notes[column][i] == true){
          out.addSignal(sounds[i]);
        }
      }
    }
  }
4

1 回答 1

1

我只使用 Minim 播放 mp3 文件,虽然我在那里遇到了同样的问题。我没有删除信号,而是使用了 Minims stop() / mute() / pause() 函数,并在执行上面的代码几帧后删除了信号。

于 2014-12-01T19:13:16.067 回答