AVAudioPlayer
类提供了十分简单的接口用来从文件或内存中播放音频.但是,AVAudioPlayer
不支持播放远程网络音频.
下面的代码可以用来播放一段本地音乐:
NSString *path = [[NSBundle mainBundle] pathForResource:@"jstin" ofType:@"mp3"];
NSURL *fileURL = [NSURL fileURLWithPath:path];
NSError *error;
self.player = [[AVAudioPlayer alloc]initWithContentsOfURL:fileURL error:&error];
if (self.player) {
[self.player prepareToPlay];
}
prepareToPlay
方法会取得需要的音频硬件并预加载到Audio Queue
的缓冲区,这样可以降低play
方法调用后准备播放产生的延时.prepareToPlay
方法如果没有被手动显式调用,那么当调用play
方法时会隐式调用.
AVAudioPlayer
类还提供了一系列控制播放的方法:
play
:立即开始音频播放pause
:暂停播放stop
:停止播放,并撤销prepareToPlay
时的设置
此外,还有一些其他有趣的方法:
volume
:播放器的音量独立于系统音量,可以通过对播放器音量的处理实现很多有趣的效果,比如声音的渐隐效果pan
:允许使用立体声播放,范围从-1.0(极左)到1.0(极右),默认为0,居中rate
:iOS 5以后允许用户在不改变音调的情况下调整播放速率,范围从0.5(半速)到2.0(2倍速)numberOfLoops
:可以设置播放器循环播放次数,设置为-1则表示无限循环