オーディオ プレーヤーがあり、現在の再生時間を表示したいと考えています。カスタムプレイクラスを使用しています。
アプリは mp3 をファイルにダウンロードし、5% がダウンロードされるとファイルから再生します。ファイルが再生されると進行状況ビューが更新され、進行状況ビューへの呼び出しごとにラベルが更新されます。ただし、これはぎくしゃくしています... 1桁または2桁後退することさえあります。
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 秒後に呼び出されますが、メソッドが呼び出されるたびに更新されます。
いつものように、コメントとポインタは感謝しています。