AVAudioPlayer - 音頻播放

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.01.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)混音

  1. 用一個(gè)存放 AVAudioPlayer 對(duì)象的數(shù)組存放多個(gè)音頻文件。
  2. 校準(zhǔn)音頻文件的播放時(shí)間。
  3. 開(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];
       }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容