iOS 简易音乐播放器

   每周五公司例行会议, 今天没学习Swift就给大家贴一些之前写的demo得了, 今天主要做一个简单的音乐播放器.先看下效果图

 

 先主要说下功能, 进度条, 以及一个控制音量的slider, 还有一个btn控制播放以及暂停, 以及上面的一个时间显示的label. 下面直接上代码了.

 //这里给btn设置两种状态的图片, 点击btn之后, btn会自动换图
    [self.playOrPauseBtn setImage:[UIImage imageNamed:@"play.jpg"] forState:UIControlStateNormal];
    [self.playOrPauseBtn setImage:[UIImage imageNamed:@"pause.jpg"] forState:UIControlStateSelected];
    [self.playOrPauseBtn setSelected:NO];

接下来是配置播放器了

 //配置播放器
    NSBundle *bundle = [NSBundle mainBundle];
    NSString * path = [bundle pathForResource:@"Error" ofType:@"mp3"];
    NSURL * musicURL = [NSURL fileURLWithPath:path];
    NSError *error;
    self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:&error];
    if (self.player == nil) {
        NSLog(@"error = %@", [error localizedDescription]);
    }
    
    //设置时间,每0.5s调用一次绑定的方法
    self.timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];

 

接下来是方法的实现了.

//更新时间
-(void) updateTime
{
    //获取音频的总时间
    NSTimeInterval totalTimer = self.player.duration;
    //获取音频的当前时间
    NSTimeInterval currentTime = self.player.currentTime;
    //根据时间比设置进度条的进度
    self.ScheduleProgress.progress = (currentTime/totalTimer);
    
    //把秒转换成分钟
    NSTimeInterval currentM = currentTime/60;
    currentTime = (int)currentTime%60;
    
    NSTimeInterval totalM = totalTimer/60;
    totalTimer = (int)totalTimer%60;
    
    //把时间显示在lable上
    NSString *timeString = [NSString stringWithFormat:@"%02.0f:%02.0f|%02.0f:%02.0f",currentM, currentTime, totalM,totalTimer];
    self.CountDownLabel.text = timeString;
}

这是btn

//btn点击的设置
- (IBAction)playOrPauseBtnClicker:(id)sender {
    self.playOrPauseBtn.selected = !self.playOrPauseBtn.selected;
    
    if (self.playOrPauseBtn.selected)
    {
        [self.player play];
    }
    else
    {
        [self.player pause];
    }

}
- (IBAction)changeVolume:(id)sender {
    self.player.volume = self.VolumeSlider.value;//这是Slider改变音量的实现
}

      这里我是通过xib设置的一些初始值, 而且我这里没有设置上一首, 下一首, 原理很简单就是设置一个数组, 播放的时候记录下当前的index, 下一首就index++, 上一首同理, 这里没有写出可以自己试一下.   

     好, 今天就写的简单一点.我去开会了...

posted on 2015-02-06 16:05  Now丶薄荷  阅读(266)  评论(0编辑  收藏  举报

导航