Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MIDIControl, как работает longMidiEvent 
:(
    Опции темы
Hagl
Дата 7.6.2006, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 28.3.2006

Репутация: нет
Всего: 1



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

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

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

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

И вот уже ничего не играет. Может кто-то подсказать как правильно работать с longMidiEvent? 
PM MAIL   Вверх
Dancer
Дата 7.6.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

Репутация: 33
Всего: 37



пробуй так:

Код

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

 


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
Hagl
Дата 9.6.2006, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 28.3.2006

Репутация: нет
Всего: 1



Проблему решил, точнее сказать ушел от нее. Не заморачивая себе этим голову, записал весь миди файл в массив 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);
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.1217 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.