У меня есть аудиоплеер, и я хочу показать текущее время воспроизведения. Я использую пользовательский класс игры.
Приложение загружает mp3 в файл, а затем воспроизводит из файла после загрузки 5%. У меня есть обновление представления прогресса, когда файл воспроизводится, и обновляет метку при каждом вызове для просмотра прогресса. Тем не менее, это отрывисто ... иногда даже возвращаясь на цифру или две назад.
Я подумывал об использовании NSTimer для сглаживания. Меня увольняют каждую секунду в метод и передают процентную сыгранную цифру методу, затем обновляют метку.
Во-первых, это кажется разумным?
Во-вторых, как мне передать процент (с плавающей запятой) цели таймера. Прямо сейчас я помещаю процент воспроизведения в словарь, но это кажется неоптимальным.
Это то, что называется обновлением индикатора выполнения:
-(void)updateAudioProgress:(Percentage)percent {
audio = percent;
if (!seekChanging) slider.value = percent;
NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] init];
[myDictionary setValue:[NSNumber numberWithFloat:percent] forKey:@"myPercent"];
[NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(myTimerMethod:)
userInfo:myDictionary
repeats:YES];
[myDictionary release];
}
Сначала вызывается через 5 секунд, но затем обновляется при каждом вызове метода.
Как всегда, комментарии и указатели приветствуются.