현재 Apple의 음악 앱을 기반으로 음악 앱을 만들고 있는데, 진행률 막대를 추가하고 싶습니다.음악 진행률 표시 줄
내 앱에서 기본 iOS의 iPod 앱에서 재생되는 음악의 진행 상태를 보여주는 진행률 표시 줄을 만들려면 어떻게해야합니까?
현재 Apple의 음악 앱을 기반으로 음악 앱을 만들고 있는데, 진행률 막대를 추가하고 싶습니다.음악 진행률 표시 줄
내 앱에서 기본 iOS의 iPod 앱에서 재생되는 음악의 진행 상태를 보여주는 진행률 표시 줄을 만들려면 어떻게해야합니까?
MPMusicPlayerController 클래스 참조 - 특히 currentPlayBackTime
속성을 살펴 보시기 바랍니다. 결코 그걸 가지고 놀지는 않았지만, 당신이 그것을 가지고 인터페이스에서 어떻게 든 그것을 렌더링하고 싶어하는 것처럼 보입니다.
- (void) updateProgressBar:(NSTimer *) timer {
if (currentPlaybackTime != lengthOfSong) {
[self.progressBar setValue:self.musicPlayer.currentTime];
}
else {
[timer invalidate], timer = nil;
[self.progressBar setValue:lengthOfSong];
}
}
초마다 (1.0)을 발사하고 아래와 같이 진행 표시 줄을 업데이트하는 메소드를 호출 갈 수있는 타이머를 추가합니다.
이보기에 UIProgressView을 추가하고 정기적으로 업데이트 :
이것은 내가 달성 한 방법입니다. 헤더 파일에서이 변수를 선언했습니다.
NSTimer * currentTimeUpdateTimer;
'UISlider *timeSlider;
BOOL userIsScrubbing;
- (IBAction)handleScrubberTouchDown:(id)sender;
- (IBAction)handleScrubberTouchUp:(id)sender;
- (IBAction)handleScrub:(id)sender;
지금의 viewDidLoad 방법에 따라, 나는 그것이 모든 업데이트의 문제였다, 그 후 NSTimer에게
userIsScrubbing = NO;
currentTimeUpdateTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateCurrentiPodItemTime) userInfo:NULL repeats:YES];
- (void)updateCurrentiPodItemTime {
MPMediaItem *nowPlayingItem = [self.musicPlayer nowPlayingItem];
if (nowPlayingItem == nil) {
self.minLabel.text = @"00:00";
} else {
NSNumber *duration = [nowPlayingItem valueForProperty:MPMediaItemPropertyPlaybackDuration];
double currentTime = self.musicPlayer.currentPlaybackTime;
self.minLabel.text = [NSString stringWithFormat: @"%02d:%02d", (int) currentTime/60, (int) currentTime % 60];
self.maxLabel.text = [NSString stringWithFormat: @"%02d:%02d", [duration intValue]/60, [duration intValue] % 60];
if (!userIsScrubbing)
self.timeSlider.value = (float) currentTime;
}
}
- (IBAction)handleScrubberTouchDown:(id)sender {
userIsScrubbing = YES;
}
- (IBAction)handleScrubberTouchUp:(id)sender {
userIsScrubbing = NO;
}
- (IBAction)handleScrub:(id)sender {
self.musicPlayer.currentPlaybackTime = timeSlider.value;
}
음악을 재생하려면 무엇을 사용하고 있습니까? –
내 앱에 기본 iPod 앱의 정보가 표시되어 iPod 앱이 음악을 재생 중입니다. –