天天看點

iOS開發拓展篇—封裝音頻檔案播放工具類

iOS開發拓展篇—封裝音頻檔案播放工具類

一、簡單說明

1.關于音樂播放的簡單說明

(1)音樂播放用到一個叫做AVAudioPlayer的類

(2)AVAudioPlayer常用方法

  加載音樂檔案

- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;

- (id)initWithData:(NSData *)data error:(NSError **)outError;

  準備播放(緩沖,提高播放的流暢性) - (BOOL)prepareToPlay;

  播放(異步播放)- (BOOL)play;

暫停 - (void)pause;

停止- (void)stop;

是否正在播放  @property(readonly, getter=isPlaying) BOOL playing;

時長      @property(readonly) NSTimeInterval duration;

目前的播放位  @property NSTimeInterval currentTime;

播放次數(-1代表無限循環播放,其他代表播放numberOfLoops+1次 @property NSInteger numberOfLoops;

音量      @property float volume;

是否允許更改速率@property BOOL enableRate;

播放速率(1是正常速率,0.5是一般速率,2是雙倍速率)  @property float rate;

有多少個聲道 @property(readonly) NSUInteger numberOfChannels;

2.播放多個音樂檔案

說明:如果要播放多個音樂檔案,那麼最傻瓜的做法是,建立多個全局的播放器去播放對應的音樂檔案,但是這種方法無法适用于需要播放的檔案數量巨大的情況。

  另外一種做法是:自己封裝一個播放音樂檔案的工具類。

封裝工具類的實作步驟:

  建立一個類,繼承自NSObject類。提供三個對外的接口:

  

iOS開發拓展篇—封裝音頻檔案播放工具類

分别是:

播放音樂(參數:檔案名,傳回值:BOOL)

暫停音樂(參數:檔案名)

停止音樂(參數:檔案名)

該工具類中的代碼設計如下:

YYAudioTool.h檔案

iOS開發拓展篇—封裝音頻檔案播放工具類
iOS開發拓展篇—封裝音頻檔案播放工具類

YYAudioTool.m檔案

iOS開發拓展篇—封裝音頻檔案播放工具類
iOS開發拓展篇—封裝音頻檔案播放工具類

測試程式:

在storyboard中拖拽控件,并進行連線,以做控制。

iOS開發拓展篇—封裝音頻檔案播放工具類

導入可供播放的音樂素材。

測試程式的代碼設計如下:

iOS開發拓展篇—封裝音頻檔案播放工具類
iOS開發拓展篇—封裝音頻檔案播放工具類

二、對工具類進行改造,讓其兼能播放音效檔案

說明:

  音效隻有建立、播放和銷毀(停止)三個操作,因為音效一般都很短,是以沒有暫停的方法。

iOS開發拓展篇—封裝音頻檔案播放工具類

把對音效檔案的播放加入到工具類中,實作的代碼如下:

iOS開發拓展篇—封裝音頻檔案播放工具類
iOS開發拓展篇—封裝音頻檔案播放工具類
iOS開發拓展篇—封裝音頻檔案播放工具類
iOS開發拓展篇—封裝音頻檔案播放工具類

代碼測試:

iOS開發拓展篇—封裝音頻檔案播放工具類

代碼說明:

iOS開發拓展篇—封裝音頻檔案播放工具類

列印的值為0,播放成功(因為函數是C++中的)