0

iphone初心者です。私はオーディオプレーヤーに取り組んでいます。audioplayer で現在の曲の現在の時間と残り時間を表示する必要があります。ビデオプレーヤーではデフォルトで取得されますが、オーディオプレーヤーでは取得されないため、曲の現在の時間を取得するためのロジックを記述する必要があります。

以下のコードはそのためのものです

int minutes = (int)audioPlayer.currentTime / 60;
int seconds = (int)audioPlayer.currentTime % 60;
startDurationLabel.text = [NSString stringWithFormat:@"%d:%02d",minutes,seconds];

これaudioPlayerは のインスタンスでAVAudioPlayerstartDurationLabelは曲の現在の時間を表示するためのラベルです。

曲の残り時間を表示するロジックを取得するのに苦労しています。曲の長さが 4 分 : 52 秒の場合、1 秒ごとに 4 分 : 51 秒、4 分 :50 秒、4 分 :49 秒と減少します。iPhone ビデオ プレーヤー アプリケーションのように。

以下のコードを試しました

NSTimeInterval interval = audioPlayer.duration - audioPlayer.currentTime;
NSLog(@"the interval is %f",interval);

ここで、 time interval の値を取得します292, 291, 290。徐々に減っていきますが、分:秒の形式で表示したいです。

体がこれを知っているなら、私を助けてください。

4

2 に答える 2

0

Create NSTimer and fire method timerFired: every second

[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];

- (void) timerFired:(NSTimer *)timer {
NSTimeInterval remainingTime = audioPlayer.duration - audioPlayer.currentTime;

}

NSTimeInterval is same as double.

于 2012-05-25T07:27:23.907 に答える
0

NSTimerそのために使用して、1秒ごとに発射することができます。

NSTimer *progressTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(setProgress) userInfo:nil repeats:YES];

setProgressラベルのテキストを更新する必要があるメソッドです。

于 2012-05-25T07:22:17.437 に答える