gpt4 book ai didi

java - 从音序器中删除 MIDI 默认输出

转载 作者:行者123 更新时间:2023-11-29 03:19:32 24 4
gpt4 key购买 nike

我似乎无法在 Java 中关闭音序器的默认输出。在向另一个端口发送消息时,我总是能听到标准的 MIDI 声音。

寻找我的端口

Sequencer sequencer = MidiSystem.getSequencer();

MidiDevice.Info[] midiDeviceInfos = MidiSystem.getMidiDeviceInfo();

// 1 is the port I want
MidiDevice midiOutDevice = MidiSystem.getMidiDevice(midiDeviceInfos[1]);

Receiver midiOutReceiver = midiOutDevice.getReceiver();
sequencer.getTransmitter().setReceiver(midiOutReceiver);

这会导致 MIDI 不可用异常:MIDI IN 接收器不可用。

除非我将其更改为(这让我获得了所需的端口),但仍然是默认的 MIDI:

Receiver midiOutReceiver = MidiSystem.getReceiver();
sequencer.getTransmitter().setReceiver(midiOutReceiver);

无法移除任何发射器或接收器

sequencer.getTransmitters().remove(INT)
sequencer.getReceivers().remove(INT)

现在无论我做什么,我总是听到音序器的默认 MIDI 输出(这给了我一个编译错误)

在没有 Java 音序器标准端口的情况下,如何仅将 MIDI 发送到 1 个端口?

最佳答案

终于找到了一种方法来避免 sequencer 对象具有的默认连接。您可以选择通过不传递任何参数来选择默认音序器。但是,如果您使用 getSequencer 方法传递一个 boolean 值,您就可以选择!

Sequencer seq = MidiSystem.getSequencer(false);

关于java - 从音序器中删除 MIDI 默认输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24527209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com