AVAudioPlayer

1.支持库AVFoundation.framework

2.例子

声明

 1 @private
 2     //播放器
 3     AVAudioPlayer *_audioPlayer;
 4     //play btn
 5     UIButton *_btnPlay;
 6     UIButton *_btnStop;
 7     
 8     //gress
 9     UISlider *_sliderProgress;
10     UISlider *_sliderVlume;

 

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    NSString *path = [[NSBundle mainBundle] pathForResource:@"bg" ofType:@"mp3"];
    NSURL *url =[NSURL fileURLWithPath:path];
    _audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    
    _audioPlayer.delegate=self;
    //初始位置
    [_audioPlayer prepareToPlay];
    //初始音量
    [_audioPlayer setVolume:0.5f];
    

    
    _btnPlay=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    [_btnPlay setTitle:@"play" forState:UIControlStateNormal];
    _btnPlay.tag=0;
    _btnPlay.frame=CGRectMake(10, 100, 100, 40);
    [_btnPlay addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:_btnPlay];
    
    _btnStop=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    [_btnStop setTitle:@"stop" forState:UIControlStateNormal];
    [_btnStop addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    _btnStop.tag=1;
    _btnStop.frame=CGRectMake(200, 100, 100, 40);
    [self.view addSubview:_btnStop];
    
    _sliderProgress=[[UISlider alloc] initWithFrame:CGRectMake(10, 10, 300, 10)];
    
    _sliderProgress.tag=2;
    [_sliderProgress addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:_sliderProgress];
    
    _sliderVlume=[[UISlider alloc] initWithFrame:CGRectMake(10, 50, 300, 10)];
    _sliderVlume.maximumValue=1.0f;
    _sliderVlume.tag=3;
    [_sliderVlume addTarget:self action:@selector(sliderChange:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:_sliderVlume];
    
    //默认音量
    _sliderVlume.value=_audioPlayer.volume;
    _sliderProgress.maximumValue=_audioPlayer.duration;
    
    //音乐播放进度控制
    
    [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(timetiker) userInfo:nil repeats:YES];
    
    
}

#pragma mark - btnclick valuechange
-(void)btnClick:(UIButton*)btn{
    switch (btn.tag) {
        case 0:
        {
            if ([_audioPlayer isPlaying]) {
                [_audioPlayer pause];
                [btn setTitle:@"play" forState:UIControlStateNormal];
            }
            else{
                [btn setTitle:@"pause" forState:UIControlStateNormal];
                [_audioPlayer play];
            }
        }
            break;
        case 1:{
        
        }
            break;
        default:
            break;
    }
}
-(void)timetiker{
    _sliderProgress.value=_audioPlayer.currentTime;
}
-(void)sliderChange:(UISlider*)slider{
    switch (slider.tag) {
        case 2:{
            _audioPlayer.currentTime=_sliderProgress.value;
        }
            
            break;
        case 3:{
            _audioPlayer.volume=_sliderVlume.value;
        }
            break;
        default:
            break;
    }
}

  

posted @ 2013-04-06 22:13  *^*  阅读(283)  评论(0编辑  收藏  举报