如何在完成播放后关闭音序器

时间:2018-03-05 16:52:23

标签: java

每当我使用:

启动音序器时
Sequencer sequencer = MidiSystem.getSequencer();
sequencer.open();

// code....
sequencer.start();
sequencer.close(); //it closes the sequencer immediately with no sound being played

确保音序器播放声音然后调用close()方法的方法是什么?我不想用时间延迟。

1 个答案:

答案 0 :(得分:0)

如果您使用的是java8

,则可以使用CompletableFuture

它就像javascript的承诺。您可以指定任务完成后要执行的方法。 例如:你可以做类似的事情:

CompletableFuture<String> completableFuture
  = CompletableFuture.supplyAsync(() -> sequencer.start())
 completableFuture.thenApply(s -> sequencer.close())