AVFoundation框架

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 

 https://github.com/yngzij/AFAudioPlayer

你可能感兴趣的:(AVFoundation框架)