0%

使用AVAudioPlayer播放音频

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则表示无限循环