iOS 實現(xiàn)錄音功能

#pragma mark ===== 錄制音頻初始化

-(void)saveAudio{


? ? AVAudioSession* session =? [AVAudioSession sharedInstance];

? ? [sessionsetCategory:AVAudioSessionCategoryPlayAndRecord error:nil];

? ? [sessionsetActive:YESerror:nil];

? ? //錄音設(shè)置

? ? NSMutableDictionary * recordSetting = [[NSMutableDictionary alloc]init];

? ? //設(shè)置錄音格式

? ? [recordSetting? setValue:[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey];

? ? //設(shè)置錄音采樣率(HZ)

? ? [recordSetting setValue:[NSNumber numberWithFloat:16000] forKey:AVSampleRateKey];

? ? //錄音通道數(shù)

? ? [recordSetting setValue:[NSNumber? numberWithInt:2] forKey:AVNumberOfChannelsKey];

? ? //線性采樣位數(shù)

? ? [recordSetting? setValue:[NSNumber numberWithInt:8] forKey:AVLinearPCMBitDepthKey];

? ? //錄音的質(zhì)量

? ? [recordSetting? setValue:[NSNumber numberWithInt:AVAudioQualityHigh] forKey:AVEncoderAudioQualityKey];

? ? //獲取沙盒路徑 作為存儲錄音文件的路徑

? ? NSString * strUrl = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];

、//? ? 創(chuàng)建url

? ? NSURL * url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/voice.wav",strUrl]];

? ? self.urlPlay= url;

? ? NSError* error ;

? ? //初始化AVAudioRecorder

? ? self.recorder= [[AVAudioRecorder alloc]initWithURL:url settings:recordSetting error:&error];

? ? //開啟音量監(jiān)測

? ? self.recorder.meteringEnabled = YES;

? ? self.recorder.delegate=self;

? ? if(error){

? ? ? ? NSLog(@"創(chuàng)建錄音對象時發(fā)生錯誤,錯誤信息:%@",error.localizedDescription);

? ? }



}

#pragma mark ===== 開始錄制音頻

-(void)startSaveAvdio{

? ? if([self.recorder prepareToRecord]){

? ? ? ? //開始

? ? ? ? [self.recorderrecord];

? ? ? ? NSLog(@"開始錄音");


? ? ? ? self.avdioTimer=? [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updatePlayTimerValue)? userInfo:nil? repeats:YES];


? ? ? ? [self.avdioTimerfire];

? ? }


}

#pragma mark ===== 結(jié)束錄制音頻

-(void)stopSaveAvdio

{

? ? //? ? 獲取當(dāng)前錄音時長

? ? floatvoiceSize =self.recorder.currentTime;


? ? NSLog(@"錄音時長 = %f",voiceSize);

//

? ? ? ? if(voiceSize <15){

? ? ? ? ? ? [self.recorderdeleteRecording];

? ? ? ? ? ? UIAlertView* altView = [[UIAlertViewalloc]initWithTitle:nilmessage:@"時長小于15秒黎休,重新錄制"delegate:selfcancelButtonTitle:nilotherButtonTitles:nil];

? ? ? ? ? ? [altViewshow];

? ? ? ? ? ? [selfperformSelector:@selector(performDismiss:)withObject:altViewafterDelay:1.5];

? ? ? ? }elseif(voiceSize >60){

? ? ? ? ? ? [self.recorderdeleteRecording];

? ? ? ? ? ? UIAlertView * altView = [[UIAlertView alloc]initWithTitle:nil message:@"時長大于1分鐘,重新錄制" delegate:self cancelButtonTitle:nil otherButtonTitles: nil];

? ? ? ? ? ? [altViewshow];

? ? ? ? ? ? [selfperformSelector:@selector(performDismiss:)withObject:altViewafterDelay:1.5];


? ? ? ? }

? ? ? ? else

? ? ? ? {


? ? ? ? ? ? NSArray*dataArray=[selfgetAllFile];


? ? ? ? ? ? NSLog(@"======dataArray=======%@",dataArray);


? ? ? ? ? ? if(dataArray.count>0) {


? ? ? ? ? ? ? ? if(self.addBlackAvdioBlock) {

? ? ? ? ? ? ? ? ? ? self.addBlackAvdioBlock(dataArray);

? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? ? [self.navigationController popViewControllerAnimated:YES];


? ? ? ? ? ? }


? ? ? ? }


? ? //此處需要恢復(fù)設(shè)置回放標(biāo)志,否則會導(dǎo)致其它播放聲音也會變小

? ? AVAudioSession *session = [AVAudioSession sharedInstance];

? ? [sessionsetCategory:AVAudioSessionCategoryPlayback error:nil];



? ? [self.recorderstop];


? ? [self.avdioTimer invalidate];

? ? self.avdioTimer = nil ;


? ? NSLog(@"結(jié)束錄制音頻");


}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市骡苞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌楷扬,老刑警劉巖解幽,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異烘苹,居然都是意外死亡亚铁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門螟加,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吞琐,你說我怎么就攤上這事捆探。” “怎么了站粟?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵黍图,是天一觀的道長。 經(jīng)常有香客問我奴烙,道長助被,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任切诀,我火速辦了婚禮揩环,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘幅虑。我一直安慰自己丰滑,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布倒庵。 她就那樣靜靜地躺著褒墨,像睡著了一般炫刷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上郁妈,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天浑玛,我揣著相機與錄音,去河邊找鬼噩咪。 笑死顾彰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的剧腻。 我是一名探鬼主播拘央,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼书在!你這毒婦竟也來了灰伟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤儒旬,失蹤者是張志新(化名)和其女友劉穎栏账,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體栈源,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡挡爵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了甚垦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茶鹃。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖艰亮,靈堂內(nèi)的尸體忽然破棺而出闭翩,到底是詐尸還是另有隱情,我是刑警寧澤迄埃,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布疗韵,位于F島的核電站,受9級特大地震影響侄非,放射性物質(zhì)發(fā)生泄漏蕉汪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一逞怨、第九天 我趴在偏房一處隱蔽的房頂上張望者疤。 院中可真熱鬧,春花似錦叠赦、人聲如沸宛渐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窥翩。三九已至业岁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寇蚊,已是汗流浹背笔时。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留仗岸,地道東北人允耿。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像扒怖,于是被迫代替她去往敵國和親较锡。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容