Я использую BASS_MIDI при разработке iPhone. Я создаю midiStream из файла, подобного этому
midiStream = BASS_MIDI_StreamCreateFile(false, filePath, 0, 0, 0, 44100);
Затем я играю / позиционирую / делаю паузу, меняя громкость и темп.
Я меняю темп (для контроля скорости воспроизведения) перед тем, как играть
BASS_MIDI_StreamEvent(midiStream, 0, MIDI_EVENT_TEMPO, currentTempo);//microseconds per quarter note
BASS_ChannelPlay(midiStream, false);
Работает хорошо, но у меня есть одна проблема. Если положение среднего потока равно 0, то темп не изменяется (громкость и другой BASS_MIDI_StreamEvent тоже не работают).
Если изменить порядок звонков, как это
BASS_ChannelPlay(midiStream, false);
BASS_MIDI_StreamEvent(midiStream, 0, MIDI_EVENT_TEMPO, currentTempo);//microseconds per quarter note
тогда у меня есть некоторая задержка (воспроизведение начинается с неправильной скорости и меняется через полсекунды или меньше.
Как я могу это исправить? Есть ли способ вызвать события перед игрой в нулевой позиции?
P.S. Извините за плохой английский.