У меня есть UISlider, действующий как скруббер. При перетаскивании большого пальца я выполняю следующее:Использование MPMusicPlayerController, настройка musicPlayer.currentPlaybackTime, чтобы искать, но занимает второе место, чтобы вступить в силу
- (void) _seekTo:(double)playbackTime {
mPlayer.currentPlaybackTime = playbackTime;
}
Это прекрасно работает, музыка ищет вперед. После выпуска большого пальца, я перезапускаю NSTimer, чтобы отправлять обновления времени, чтобы синхронизировать UISlider. Проблема заключается в том, что при выпуске большого пальца первые несколько обратных вызовов содержат предыдущее значение времени. Это приводит к тому, что большой палец возвращается в исходное положение перед возвратом к новому значению. Очень неприглядно.
У кого-нибудь есть опыт работы с этим поведением и способ исправить? Я могу предоставить образец проекта, если вы хотите, чтобы это продемонстрировало эту аномалию.
Спасибо за ответ. Это то, о чем я думал, но был удивлен, что игрок не будет нести ответственность за то, что при установке времени currentPlayBack, что он сделает любой необходимый сброс кэшированного аудио и просто продолжит работу из заданного местоположения. Идея фильтрации, которую вы предлагаете, - это то, что я рассматривал до этого поста, но хотел знать, кто-то испытал это, и если я упустил что-то очевидное. Поскольку нигде в документации нет упоминания об этом, я бы склонялся к тому, чтобы классифицировать это как ошибку или, по крайней мере, плохую реализацию. Ура! – gnasher