Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > MIDIControl


Автор: Hagl 7.6.2006, 00:27
Всем привет. Залез я вот недавно в дебри формата MIDI. Не могу разобраться с методом longMidiEvent.
Например, вот такой вызов:

myMIDIControl.shortMidiEvent(0x90, 48, 96);

Все нормально, проигрывается соответствующая нота. Пробую написать то же самое в другом виде:

byte [] event = {(byte)0x90, 48, 96};
myMIDIControl.longMidiEvent(event, 0, event.length);

И вот уже ничего не играет. Может кто-то подсказать как правильно работать с longMidiEvent? 

Автор: Dancer 7.6.2006, 14:27
пробуй так:

Код

byte [] event = {(byte)0x90, 48, 127, (byte)0x90, 96, 127};
myMIDIControl.longMidiEvent(event, 0, event.length);

 

Автор: Hagl 9.6.2006, 21:05
Проблему решил, точнее сказать ушел от нее. Не заморачивая себе этим голову, записал весь миди файл в массив byte[] data и сделал так:

Код

ByteArrayInputStream inputStream = new ByteArrayInputStream (data);
player = Manager.createPlayer(inputStream, "audio/midi");


Dancer
Спасибо, на досуге ради интереса попробую, хотя и не совсем понял почему именно так. Ты навел на мысль, что можно попробовать добавить окончание ноты, например так:
Код

byte [] event = {(byte)0x90, 48, 127, (byte)0x80, 48, 127};
myMIDIControl.longMidiEvent(event, 0, event.length);
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)