3

我在 Eclipse 中使用 Jfugue,我在代码中有一个音乐字符串列表。当我运行代码时,它会播放所有这些,但我想以随机顺序一次播放一个。

到目前为止,我正在使用:

Pattern pattern = new Pattern ("A");
Player.play(A);
Pattern pattern = new Pattern ("B");
Player.play(B);

我试过使用“随机随机=新随机();” 但这一直不起作用,我不知道如何实现它。

我也尝试过重新使用随机词生成器:

  for(int i = 0; i < numberOfTest; i++) {
    int index = (int)(Math.random() * 10);
    System.out.println(strings[index]);

但我不知道如何用音乐字符串替换单词字符串:

一般来说,我的大部分问题都源于不熟悉正确的语法,尤其是 Jfugue。

4

1 回答 1

2

将它们放入一个列表中,然后随机播放:

List<Pattern> allPatterns = Arrays.asList(new Pattern ("A"), new Pattern ("B"), ... more patterns);
Collections.shuffle(allPatterns);

请注意:上面是简单的java,它独立于任何特定的框架,如jfugue。

播放时,您只需告诉播放器使用随机播放列表的顺序播放模式:

// by using the for-each loop
for (Pattern onePattern : allPatterns) {
   player.play(onePattern);
}

// alternatively, turn the list back into an array and play that
player.play(allPatterns.toArray(new Pattern[0]);
于 2019-05-08T15:57:20.090 回答