進行状況バーとして機能するUISliderを表示しようとしています。 UISliderの進捗状況が、システムメディアプレーヤーで再生されている曲の現在の進行状況になるようにします。システムメディアプレーヤーの進行状況(UISlider)
これは私のコードです:loadViewメソッドで
static MPMusicPlayerController *musicPlayer;
NSTimer * currentTimeUpdateTimer;
UISlider *timeSlider;
:のviewDidLoadで
musicPlayer = [MPMusicPlayerController systemMusicPlayer];
timeSlider = [[UISlider alloc] initWithFrame:CGRectMake((((scrollView.contentSize.width/2)+(scrollView.contentSize.width/12))-10), 100, (((scrollView.contentSize.width/2)-(scrollView.contentSize.width/6))+20), 80)];
timeSlider.backgroundColor = [UIColor clearColor];
timeSlider.minimumTrackTintColor = [UIColor whiteColor];
timeSlider.maximumTrackTintColor = [UIColor blackColor];
timeSlider.alpha = 0.8;
timeSlider.exclusiveTouch = YES;
[scrollView addSubview:timeSlider];
:
私headers.hファイルで
currentTimeUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateCurrentiPodItemTime) userInfo:NULL repeats:YES];
userIsScrubbing = NO;
これらは、 contのための関数ローリングとUISlider
- (void)updateCurrentiPodItemTime {
MPMediaItem *nowPlayingItem = [musicPlayer nowPlayingItem];
if (nowPlayingItem == nil) {
} else {
double currentTime = musicPlayer.currentPlaybackTime;
if (!userIsScrubbing)
timeSlider.value = (float) currentTime;
}
}
- (void)handleScrubberTouchDown:(id)sender {
userIsScrubbing = YES;
}
- (void)handleScrubberTouchUp:(id)sender {
userIsScrubbing = NO;
}
- (void)handleScrub:(id)sender {
musicPlayer.currentPlaybackTime = timeSlider.value;
}
の値を設定するしかし、何が起こるかはUISlider値が常にいっぱいで、曲が進むにつれて進まないです。
UISliderのポイントは、再生中の音楽をユーザーがスクラブできるようにすることです。
タグをクリーンアップしました。 **実際に**使用している** 1 **言語用のタグを追加します(ヒント:あなたがタグ付けしたものはありません)。あなたがわからない場合は、コードを書かない方がよいでしょう。 – Olaf
@Olaf Ok申し訳ありません。しかし、私は文法を調べる必要があると思います。 "あなたはコードを書かない方がいい"という意味合いはない。 – TheHellOTrofasdasd
「わかりません」:Dとにかく、あなたの実装は大丈夫ですが、なぜ動作していないのかわかりません。あなたはレイアウトをサブビューしようとしましたか? – RomOne