你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS編程技術 >> iOS開發-音效的使用

iOS開發-音效的使用

編輯:IOS編程技術

音頻我們簡易的分為兩種,既音效和音頻。

1.音效:是有聲音制造而成,主要用於加強對於對聲音的處理。在用戶使用app的時候加入音效,無疑是用戶體驗的加分項。

2.音樂:音樂的播放時間一般比較長,比如游戲中無限循環的背景音樂。

我們在使用音頻的時候需要用到兩個框架

1.AVFoundation.framework

2.AudioToolbox.framework

由於AVFoundation比較強大這裡就先介紹一下AudioToolbox框架

音效播放常見函數總結 //加載音效文件 AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID)   //釋放音效資源 AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID)   //播放音效 AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)

//播放音效帶點震動

AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)

使用時需要注意,為了到達省電的目的,硬件的解碼只能對一個音頻文件進行解碼。

下面來介紹一下AVFoundation框架

音樂播放用到一個叫做AVAudioPlayer的類 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;

//聲道(-1是左聲道,1是右聲道,0是中間) @property float pan;   //是否允許測量音量 @property(getter=isMeteringEnabled) BOOL meteringEnabled;   //更新測量值 - (void)updateMeters;

//獲得當前的平均音量

- (float)averagePowerForChannel:(NSUInteger)channelNumber;

AVFoundation.framework和AudioToolbox.framework的常用方法就是這些了

開發中具體怎樣使用這兩個框架比較好,就仁者見仁,智者見智了。

隨著時代的前進,OC成為歷史只是時間問題了。面對swift的強勢來襲,起初國內的大牛們只是持觀望狀態,

但是隨著swift2.0的到來,這種趨勢已經勢不可擋了。最為一名優秀的開發者,同時掌握多個開發語言是剛需。

最為一名優秀的iOS開發者,同時掌握OC和swift也是剛需。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved