Привет всем, у меня есть метод записи, который записывает заметки, которые пользователь воспроизводит в массив в режиме реального времени.Единственная проблема в том, что есть небольшая задержка, и каждая последовательность заметно замедляется при воспроизведении.Я увеличил скорость воспроизведения примерно на 6 миллисекунд, и это звучит правильно, но мне было интересно, будет ли задержка меняться на других устройствах?
Я тестировал на Ipod Touch 2-го поколения, как бы эта преформана 3-м и 4-м как и на айфонах?мне нужно проверить все из них и найти оптимальное изменение задержки?
Любые идеи?
Подробнее : я использую два NSThreadsвместо таймеров, и заполните массив пустыми местами, где не должны играть ноты (я использую целые числа, -1 - пробел).Каждые 0,03 секунды он добавляет пробел при записи.Каждый раз, когда пользователь нажимает на заметку, самый последний пробел заменяется числом 0-7.При воспроизведении используется второй поток (2 потока, потому что второй имеет более короткий интервал времени), который имеет время 0,024.Разница в 6 миллисекунд компенсирует задержку между записью и воспроизведением.
Я предполагаю, что запись или воспроизведение нот занимает больше времени, чем другие, и, следовательно, создает задержку.
Что яЯ хочу знать, будет ли задержка отличаться на других устройствах и как я должен ее компенсировать.
Точное решение
МогуЯ не объяснил это полностью, поэтому это решение не было предоставлено, но для тех, кто сталкивался с подобной проблемой ...
Я проигрывал каждый удар, похожий на файл миди, например:
while playing:
do stuff to play beat
new date xyz seconds from now
new date now
while now is not > date xyz seconds from now wait.
Очевидное, чего мне не хватало, - это создать две даты ПЕРЕД игрой в такт ...
D'OH!