簡體   English   中英

錄制1秒音頻ios

[英]Recording 1 second audio ios

如何在不使用文件系統的情況下僅錄制一秒鍾的音頻並將其轉換為字節數組以通過JSON發送?

NSDictionary *recordSettings = [NSDictionary
                                        dictionaryWithObjectsAndKeys:
                                        [NSNumber numberWithInt:AVAudioQualityMin],
                                        AVEncoderAudioQualityKey,
                                        [NSNumber numberWithInt:16],
                                        AVEncoderBitRateKey,
                                        [NSNumber numberWithInt: 1],
                                        AVNumberOfChannelsKey,
                                        [NSNumber numberWithFloat:16000.0], AVSampleRateKey,
                                        [NSNumber numberWithInt:8], AVLinearPCMBitDepthKey,
                                        nil];

recorder = [[AVAudioRecorder alloc] initWithURL:recordedFile settings:recordSettings error:nil];

否則,我想知道錄制的一秒鍾聲音的大小和時間。

采樣率= 16,000 Hz(每秒采樣數)
比特率= 16(每個樣本位數)
因此1秒樣本的大小= 16K x 16 = 256Kbits

要錄制一秒鍾,您可以使用
- (BOOL)recordForDuration:(NSTimeInterval)duration

如果您想快速入門,可以使用
- (void)prepareToRecord

要在特定時間錄制,請使用
- (BOOL)recordAtTime:(NSTimeInterval)time forDuration:(NSTimeInterval)duration
(隱式調用prepareToRecord

為了獲得准確的記錄時間,您將需要使用較低級別的API。 如果您不擔心准確性,則可以記錄調用上述方法的時間或將其寫入文件系統的時間。

如果您不想使用文件系統,則需要使用較低級別的API,您可以在其中使用回調來獲取位流。 Apple的Core Audio或眾多C ++音頻引擎之一(例如PortAudioFModNovocaine )將允許您執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM