AVFoundation框架提供的功能包括对声音文件进行播放盒混音,计量,以及基本的音频控制
AVAudioPlayer 类封装了播放单个声音的能力,播放器可以用以个NSURL对象来初始化,该对象指向要被播放的资源。如果要同时播放多个声音,你可以为每个声音都创建一个新的AVAudioPlayer对象。
NSError*err;
NSString*path=[[NSBundlemainBundle]pathForResource:@"1"ofType:@"mp3"];
NSLog(@"%@",path);
NSURL*url=[[NSURLalloc]initFileURLWithPath:path];
_player=[[AVAudioPlayeralloc]initWithContentsOfURL:urlerror:nil];
[_playerprepareToPlay];
_player.volume=0;//设置声音大小 0.0.~1.0之间
_player.numberOfLoops=3;//设置循环次数,默认值播放一次
UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeSystem];
[btnaddTarget:selfaction:@selector(click)forControlEvents:UIControlEventTouchDown];;
[self.viewaddSubview:btn];
btn.frame=CGRectMake(0,0,100,100);
}
-(void)click
{
[_playerplay];
NSLog(@"ok");
}
代理方法
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer*)player successfully:(BOOL)flag
{
//播放结束时执行的代码
}
-(void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer*)player error:(NSError*)error
{
//播放错误时执行的代码
}
需要监听中断要注册消息
AVAudioSession*session=[AVAudioSessionsharedInstance] ;
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(AVAudioSessionInterruptionNotification:)name:AVAudioSessionInterruptionNotificationobject:session];
一个播放器的Demo