Приложение для iPhone воспроизводит аудиофайл с помощью FFMPeg.
Я получаю истекшее время (для показа пользователю) из воспроизводимого аудио (в минутах и секундах после преобразования в микросекундах, заданных FFMPeg) следующим образом:
AudioTimeStamp currentTimeStamp;
AudioQueueGetCurrentTime (audioQueue, NULL, ¤tTimeStamp, NULL);
getFFMPEGtime = currentTimeStamp.mSampleTime/self.basicAudioDescription.mSampleRate;
self.currentAudioTime = [NSString stringWithFormat: @"%02d:%02d",
(int) getFFMPEGtime / (int)60000000,
(int) ((getFFMPEGtime % 60000000)/1000000)];
Все работает нормально, но когда я перемещаюсь назад или вперед, чтобы воспроизвести другую часть песни, истекшее время вернется к нулю , независимо от текущей позиции. Таймер всегда обнуляется.
Я знаю, что я должен сделать некоторую математику, чтобы отследить старое и новое время, возможно, построить другие часы или около того, возможно, реализовать другую функцию обратного вызова и т. Д. Я не уверен, каким образом я должен идти.
Мои вопросы :
1) Как лучше всего отслеживать прошедшее время при переходе назад / вперед в песне, избегая того, чтобы часы всегда возвращались к нулю?
2) Должен ли я подробно изучить функции FFMPeg или мне следует использовать Objective-C и Cocoa Touch для решения этой проблемы?
Пожалуйста, мне нужны советы / идеи от опытных программистов. Я застрял. Заранее спасибо!