1

有人可以举一个完整的例子来说明如何让 UIProgressView 与音乐长度的媒体框架一起工作,由于某种原因我不能让它与 ios6 一起工作

4

1 回答 1

3

我很快建立了一个简单的项目来为您演示这一点。

向ViewController.xib添加两个 GUI 元素:一个按钮和一个进度视图。我们将使用按钮开始播放声音。

在您的ViewController.h中使用它:

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>

@interface ViewController : UIViewController {
    AVAudioPlayer *player;
}

@property IBOutlet UIProgressView *progressbar;
- (IBAction)play:(id)sender;

@end

在此之后,您可以将 ViewController.xib 出口/操作连接到 ViewController.h 中正确设置的部分。将按钮的 Touch Up Inside 事件与 File's Owner 链接(在占位符下)连接,您可以选择播放方法。将进度视图的新引用出口与文件所有者链接连接,您可以选择进度条。

然后你可以在你的ViewController.m中使用这个代码:

- (IBAction)play:(id)sender {
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"sound.caf" ofType:nil]];
    NSError *error;
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    if (!player) NSLog(@"Error: %@", error);
    [player prepareToPlay];
    [progressbar setProgress:0.0];

    [NSTimer scheduledTimerWithTimeInterval:1.0/60.0 target:self selector:@selector(updateTime:) userInfo:nil repeats:YES];
    [player play];
}

- (void)updateTime:(NSTimer *)timer {
    [progressbar setProgress:(player.currentTime/player.duration)];
}

不要忘记在您的项目中添加您的 sound.caf。

在此处输入图像描述

于 2013-04-28T14:12:23.257 回答