AVAudioPlayer - 音频播放

AVAudioPlayer 是一个音频播放器类,能够播放本地或是内存(NSData)中的音频文件,不但如此你还能使用多个 AVAudioPlayer 同时播放音频文件实现混音功能,甚至能做到动态调节音量,速率,3D立体声环绕等。

一、AVAudioPlayer的使用方法

1.创建一个内存或本地音频的Data/URL。
2.创建 AVAudioPlayer 类的对象
3.调用 prepareToPlay: 加载缓存资源
4.调用 play 开始播放

二、代码实现

  /** 创建音频URL */
     NSURL *url = [[NSBundle mainBundle] URLForResource:@"万神纪.mp3" withExtension:nil];
     /** 创建音频播放器类 */
     self.audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
     if (self.audioPlayer) {
         /** 异步预加载缓存资源 */
         [self.audioPlayer prepareToPlay];
         /** 开始播放 */
         [self.audioPlayer play];
     }

三、能够进行的操作

  • 设置音频重复次数 -1代表无限循环:
self.audioPlayer.numberOfLoops = -1;
  • 能否调整速度
self.audioPlayer.enableRate = YES;
  • 调整立体声-1.0左声道, 0.0 正中心, 1.0 右声道
self.audioPlayer.pan = 1.0;
  • 调整音量 0.01.0之间
self.audioPlayer.volume = 1.0;
  • 调整速率1.0默认值, 0.5 老污龟, 2.0 鬼畜
self.audioPlayer.rate = 1.0;
  • 暂停
[self.audioPlayer pause];
  • 停止
[self.audioPlayer stop];

四、实现混音

  1. 用一个存放 AVAudioPlayer 对象的数组存放多个音频文件。
  2. 校准音频文件的播放时间。
  3. 开始播放。
/** 获取第一个播放器的时间为基准微调同步播放 */
NSTimeInterval delayTime = [self.players[0] deviceCurrentTime] + 0.1f;
       for (AVAudioPlayer *player in self.players) {
           /** 在一个时间后播放 */
           [player playAtTime:delayTime];
       }

你可能感兴趣的:(AVAudioPlayer - 音频播放)