Я создаю музыкальную игру, и когда пользователь нажимает на заметку, он издает звук. Звук, естественно, должен воспроизводиться немедленно, когда пользователь нажимает, чтобы он мог сказать, успевают ли они с музыкой. Однако создается впечатление, что звук отстает, особенно когда нажатия клавиш становятся быстрее.
Мой фоновый музыкальный файл .m4a воспроизводится с помощью AVAudioPlayer. Я решил использовать это поверх Cocos Denshion, так как у меня есть доступ к свойству currentTime. Я могу ошибаться, но я не думаю, что смогу получить к этому доступ с помощью CocosDenshion.
Я сделал очень короткий WAV-файл (менее секунды). Я предварительно загружаю свой звуковой эффект в init:
[[SimpleAudioEngine sharedEngine] preloadEffect:@"Assist.wav"];
Затем, чтобы воспроизвести звуковой эффект, в CCTouchesBegan я звоню:
[[SimpleAudioEngine sharedEngine] playEffect:@"Assist.wav"];
После этого он вызывает мой код, чтобы определить время и очки пользователей. Любая идея, почему это может быть запаздывающим, или лучший способ вовремя воспроизвести звуковые эффекты с музыкой?
РЕДАКТИРОВАТЬ: Я пытался несколько вещей в последнее время безрезультатно. Сначала я попытался воспроизвести звуки автоматически, когда они подошли к подходящему времени в песне. Все еще было отставание, так что я не думаю, что это сенсорные события, которые происходят медленно. Я также попробовал 3 разных звуковых библиотеки.
Однако, когда я бегал в симуляторе, он, казалось, не отставал. У кого-нибудь есть идея? Я невежественен, и это главная особенность, которую я не могу вынести ...