我的 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 来解决这个问题?
拜托,我需要一些经验丰富的程序员的建议/想法。我被困住了。预先感谢!