http://code4app.com/ios/錄音并AMR和WAV互轉(zhuǎn)/51565c3e6803fa5c76000005
上面的一個例子學習的剩盒。
錄音功能主要是AVAudioRecorder 類的使用悦陋。在蘋果的官方文檔上面薛训,有介紹。主要是主要是在新建對象的時候我們需要設置錄音的采樣頻率什么的。具體我不清楚。都需要設置那幾個值就可以了狈网。主要是轉(zhuǎn)碼但是用的開源的庫。還是挺簡單的笨腥。
?這個不要忘記設置
AVAudioSession * audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error: &error];
[audioSession setActive:YES error: &error];
AVAudioSession類由AVFoundation框架引入孙援。每個IOS應用都有一個音頻會話。這個會話可以被AVAudioSession類的sharedInstance類方法訪問扇雕,如下:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
在獲得一個AVAudioSession類的實例后拓售,你就能通過調(diào)用音頻會話對象的setCategory:error:實例方法,來從IOS應用可用的不同類別中作出選擇镶奉。下面列出了可供使用的音頻會話類別:
AVAudioSessionCategorySoloAmbient?
這個類別非常像AVAudioSessionCategoryAmbient類別础淤,除了會停止其他程序的音頻回放,比如iPod程序哨苛。當設備被設置為靜音模式鸽凶,你的音頻回放將會停止。
AVAudioSessionCategoryRecord
這會停止其他應用的聲音(比如iPod)并讓你的應用也不能初始化音頻回放(比如AVAudioPlayer)建峭。在這種模式下玻侥,你只能進行錄音。使用這個類別亿蒸,調(diào)用AVAudioPlayer的prepareToPlay會返回YES凑兰,但是調(diào)用play方法將返回NO。主UI界面會照常工作边锁。這時姑食,即使你的設備屏幕被用戶鎖定了,應用的錄音仍會繼續(xù)茅坛。
AVAudioSessionCategoryPlayback
這個類別會靜止其他應用的音頻回放(比如iPod應用的音頻回放)音半。你可以使用AVAudioPlayer的prepareToPlay和play方法,在你的應用中播放聲音贡蓖。主UI界面會照常工作曹鸠。這時,即使屏幕被鎖定或者設備為靜音模式斥铺,音頻回放都會繼續(xù)彻桃。
AVAudioSessionCategoryPlayAndRecord
這個類別允許你的應用中同時進行聲音的播放和錄制。當你的聲音錄制或播放開始后仅父,其他應用的聲音播放將會停止叛薯。主UI界面會照常工作浑吟。這時笙纤,即使屏幕被鎖定或者設備為靜音模式耗溜,音頻回放和錄制都會繼續(xù)。
AVAudioSessionCategoryAudioProcessing
這個類別用于應用中進行音頻處理的情形省容,而不是音頻回放或錄制抖拴。設置了這種模式,你在應用中就不能播放和錄制任何聲音腥椒。調(diào)用AVAPlayer的prepareToPlay和play方法都將返回NO阿宅。其他應用的音頻回放,比如iPod笼蛛,也會在此模式下停止洒放。
AVAudioSessionCategoryAmbient
這個類別不會停止其他應用的聲音,相反滨砍,它允許你的音頻播放于其他應用的聲音之上往湿,比如iPod。你的應用的主UI縣城會工作正常惋戏。調(diào)用AVAPlayer的prepareToPlay和play方法都將返回YES领追。當用戶鎖屏時,你的應用將停止所有正在回放的音頻响逢。僅當你的應用是唯一播放該音頻文件的應用時绒窑,靜音模式將停止你程序的音頻回放。如果正當iPod播放一手歌時舔亭,你開始播放音頻些膨,將設備設為靜音模式并不能停止你的音頻回放。
?