AVAudioPlayer是系統提供給咱們的一個音頻播放類,在AVFoundation框架下,經過它,咱們能夠實現一個功能強大的音樂播放器。首先,在項目中咱們須要導入AVFoundation這個框架。框架
初始化方法有兩種,經過音頻的路徑或者音頻data數據初始化player對象函數
- (instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError; - (instancetype)initWithData:(NSData *)data error:(NSError **)outError;
注意:支持的音頻格式有:AAC,ALAC,HE-AAC,iLBC,IMA4,MP3.oop
準備播放音頻,返回值標誌是否解析成功,是否能夠播放。學習
- (BOOL)prepareToPlay;
開始播放音頻url
- (BOOL)play;
在一段時間間隔後播放spa
- (BOOL)playAtTime:(NSTimeInterval)time;
暫停播放,而且準備好繼續播放code
- (void)pause;
中止播放,再也不準備好繼續播放對象
- (void)stop;
獲取是否正在播放開發
@property(readonly, getter=isPlaying) BOOL playing;
獲取當前音頻聲道數get
@property(readonly) NSUInteger numberOfChannels;
獲取當前音頻時長
@property(readonly) NSTimeInterval duration;
獲取建立時的音頻路徑
@property(readonly) NSURL *url;
獲取建立時的音頻數據
@property(readonly) NSData *data;
設置聲道偏移量,0爲中心,-1爲只有左聲道,1爲只有右聲道
@property float pan;
設置音頻音量,取值爲0-1之間
@property float volume;
設置是否能夠改變播放速度
@property BOOL enableRate;
注意:設置這個屬性前必須先調用prepareToPlay這個方法。
設置播放速度,1爲正常,0.5爲一半速度,2.0爲2倍速度
@property float rate;
設置當前播放的時間點
@property NSTimeInterval currentTime;
設置音頻播放循環次數
@property NSInteger numberOfLoops;
獲取音頻設置字典
@property(readonly) NSDictionary *settings;
是否開啓儀表計數功能
@property(getter=isMeteringEnabled) BOOL meteringEnabled;
更新儀表計數的值
- (void)updateMeters;
獲取指定聲道音頻峯值
- (float)peakPowerForChannel:(NSUInteger)channelNumber;
獲取指定聲道音頻平均值
- (float)averagePowerForChannel:(NSUInteger)channelNumber;
音頻播放結束後調用的函數
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;
播放遇到錯誤時調用的函數
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;
學習使用 歡迎轉載
專一技術,熱愛生活,交流技術,也作朋友。
——琿少 QQ羣:203317592