2013-09-24 113 views
1

如何控制MIDI音序器的音量?如何控制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(); 
} 

回答

1

接口没有直接支持音量变化(以及这种情况下,任何渐变)。

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

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

+0

我该如何发送控件更改消息? 你能举个例子吗? – Ravekitty

+0

请使用“提问”按钮提出问题。 –