如何创建音乐进度指示器/控件,如iPod应用程序?

时间:2011-05-05 04:09:21

标签: progress uislider uiprogressview indicator

我正在写一个iPod应用程序替代品,在我的“正在播放”视图中,我希望有一个进度指示器,如iPod应用程序,显示当前位置,并允许用户拖动以更改播放位置。 / p>

我该怎么做?

我是否使用UISlider和UIProgressView?

1 个答案:

答案 0 :(得分:5)

在这里和那里省略了一些东西,但它足以插入。

// .h

IBOutlet UISlider *progressSlider;
NSTimer *progressTimer;

@property (nonatomic, retain) UISlider *progressSlider;
@property (nonatomic, retain) NSTimer *progressTimer;

- (void)updateSlider;
- (void)resetTimer:(NSTimer *)timer;


// .m

// synthesize variables

- (void)handleNowPlayingItemChanged:(id)notification {
    NSNumber *duration = [item valueForProperty:MPMediaItemPropertyPlaybackDuration];
    float totalTime = [duration floatValue];
    progressSlider.maximumValue = totalTime;
}

- (void)updateSlider {
    [progressSlider setValue:musicPlayer.currentPlaybackTime animated:YES];
}

- (void)resetTimer:(NSTimer *)timer {
    [progressTimer invalidate];
    progressTimer = nil;
    progressTimer = [NSTimer scheduledTimerWithTimeInterval:1 target:self
                                            selector:@selector(updateSlider)
                                            userInfo:nil repeats:YES];
}

// init and release methods (together at the bottom with view controls
//                                  (like viewDidLoad) for convenience)
//
// don't forget to register for notifications

@end

如果你想要一个示例应用程序(仅限设备; iPod库),我可以写一个,但它不会比这更多。