iOS AVAudioPlayer简单的MP3播放

- (void)viewDidLoad {
    [super viewDidLoad];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button setFrame:CGRectMake(100, 100, 60, 40)];
    [button setTitle:@"Play" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(play) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    
    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button1 setFrame:CGRectMake(100, 150, 60, 40)];
    [button1 setTitle:@"pause" forState:UIControlStateNormal];
    [button1 addTarget:self action:@selector(pause) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button1];
    
     UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button2 setFrame:CGRectMake(100, 200, 60, 40)];
    [button2 setTitle:@"stop" forState:UIControlStateNormal];
    [button2 addTarget:self action:@selector(stop) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button2];
    
    NSString *path = [[NSBundle mainBundle] pathForResource:@"MP3Sample" ofType:@"mp3"];
    NSURL *url = [NSURL URLWithString:path];
    //每个AVAudioPlayer只能播放一个音乐文件,如果需要播放多次,需要创建多次
    self.avAudioPalayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
    self.avAudioPalayer.delegate = self;
    self.avAudioPalayer.volume = 1;//初始化音量
    self.avAudioPalayer.numberOfLoops = -1;//设置音乐播放次数  -1为一直循环
    [self.avAudioPalayer prepareToPlay];//预播放
    
    self.progressView = [[UIProgressView alloc]initWithFrame:CGRectMake(20, 50, 200, 20)];
    [self.view addSubview:self.progressView];
    
    self.timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(playProgress) userInfo:nil repeats:YES];
    
    self.slider = [[UISlider alloc]initWithFrame:CGRectMake(20, 70, 200, 20)];
    [self.slider addTarget:self action:@selector(volumeChange)
                          forControlEvents:UIControlEventValueChanged];
    self.slider.minimumValue = 1.0;
    self.slider.maximumValue = 10.0;
    self.slider.value = 5.0;
    [self.view addSubview:self.slider];
}
- (void)volumeChange
{
    self.avAudioPalayer.volume = self.slider.value;
}
- (void)playProgress
{

    self.progressView.progress = self.avAudioPalayer.currentTime/self.avAudioPalayer.duration;
}
- (void)play
{
    [self.avAudioPalayer play];
}
- (void)pause
{
    [self.avAudioPalayer pause];
}
- (void)stop
{
    self.avAudioPalayer.currentTime = 0;
    [self.avAudioPalayer stop];
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
    [self.timer invalidate];
}

允许效果

posted @ 2015-04-15 15:13  巴格  阅读(273)  评论(0编辑  收藏  举报