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; } }