如何控制MIDI音序器的音量?

除了让音量自动消失之外,我还希望音量逐渐消失并关闭。

if (musicSr != null)
{
    musicSr.stop();
    musicSr.close();

    musicSr = null;
    musicS = null;

    File music = new File(midi);
    if(music.exists())
    {
        musicS = MidiSystem.getSequence(music);
    }

    // Create a sequencer for the sequence
    musicSr = MidiSystem.getSequencer();
    musicSr.open();
    musicSr.setSequence(musicS);
    musicSr.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
    musicSr.start();
}

最佳答案

Sequencer界面不直接支持音量更改(就此而言,是任何逐渐的更改)。

要更改音量,您必须将实际的音量更改消息发送到目标设备。
即,将控制更改消息在适当的时间位置插入音序器的音轨。

要获得淡出效果,请使用多个带有递减值的消息。

10-04 11:48