AVAudioPlayer是一個(gè)音頻播放器類(lèi),能夠播放本地或是內(nèi)存(NSData)中的音頻文件,不但如此你還能使用多個(gè)AVAudioPlayer同時(shí)播放音頻文件實(shí)現(xiàn)混音功能,甚至能做到動(dòng)態(tài)調(diào)節(jié)音量,速率,3D立體聲環(huán)繞等。
一、AVAudioPlayer的使用方法
1.創(chuàng)建一個(gè)內(nèi)存或本地音頻的Data/URL。
2.創(chuàng)建 AVAudioPlayer 類(lèi)的對(duì)象
3.調(diào)用 prepareToPlay: 加載緩存資源
4.調(diào)用 play 開(kāi)始播放
二、代碼實(shí)現(xiàn)
/** 創(chuàng)建音頻URL */
NSURL *url = [[NSBundle mainBundle] URLForResource:@"萬(wàn)神紀(jì).mp3" withExtension:nil];
/** 創(chuàng)建音頻播放器類(lèi) */
self.audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
if (self.audioPlayer) {
/** 異步預(yù)加載緩存資源 */
[self.audioPlayer prepareToPlay];
/** 開(kāi)始播放 */
[self.audioPlayer play];
}
三、能夠進(jìn)行的操作
- 設(shè)置音頻重復(fù)次數(shù)
-1代表無(wú)限循環(huán):
self.audioPlayer.numberOfLoops = -1;
- 能否調(diào)整速度
self.audioPlayer.enableRate = YES;
- 調(diào)整立體聲
-1.0左聲道,0.0正中心,1.0右聲道
self.audioPlayer.pan = 1.0;
- 調(diào)整音量
0.0到1.0之間
self.audioPlayer.volume = 1.0;
- 調(diào)整速率
1.0默認(rèn)值,0.5老污龜,2.0鬼畜
self.audioPlayer.rate = 1.0;
- 暫停
[self.audioPlayer pause];
- 停止
[self.audioPlayer stop];
四、實(shí)現(xiàn)混音
- 用一個(gè)存放
AVAudioPlayer對(duì)象的數(shù)組存放多個(gè)音頻文件。 - 校準(zhǔn)音頻文件的播放時(shí)間。
- 開(kāi)始播放。
/** 獲取第一個(gè)播放器的時(shí)間為基準(zhǔn)微調(diào)同步播放 */
NSTimeInterval delayTime = [self.players[0] deviceCurrentTime] + 0.1f;
for (AVAudioPlayer *player in self.players) {
/** 在一個(gè)時(shí)間后播放 */
[player playAtTime:delayTime];
}