私の iPhone アプリは、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)];
すべて正常に動作しますが、曲の別の部分を再生するために前後にスクラブすると、現在の位置に関係なく、経過時間が 0 に戻ります。タイマーは常にゼロになります。
古い時間と新しい時間を追跡するために、おそらく別の時計を構築したり、別のコールバック関数を実装したりするなど、いくつかの計算を行う必要があることはわかっています...どのようにすればよいかわかりません。
私の質問は次のとおりです。
1)曲を前後に移動するときに経過時間を追跡し、時計が常にゼロに戻らないようにする最善の方法は何ですか?
2)この問題を解決するには、FFMPeg の機能を詳しく調べる必要がありますか?それとも、Objective-C と Cocoa Touch を使い続ける必要がありますか?
経験豊富なプログラマーからのアドバイス/アイデアが必要です。私は立ち往生しています。よろしくお願いします!