OC之錄制文件AVCaptureFileOutput

一再愈、抽象類AVCaptureFileOutput

AVCaptureFileOutputAVCaptureOutput的子類铛楣,可以將捕獲的數(shù)據(jù)記錄到文件中刀荒。

1、設(shè)置屬性

屬性 數(shù)據(jù)類型 描述
delegate id 委托對象窄陡;AVCaptureFileOutputDelegate協(xié)議將能夠沿樣本邊界準確的監(jiān)測和控制記錄炕淮。
maxRecordedDuration CMTime 允許錄制的最長時間;默認值為kCMTimeInvalid表示無限制跳夭。
maxRecordedFileSize int64_t 允許錄制數(shù)據(jù)的最大字節(jié)涂圆;默認值為0,表示沒有限制币叹。
minFreeDiskSpaceLimit int64_t 錄制時要求指定磁盤的最小可用空間量润歉。
outputFileURL NSURL 只讀屬性,錄制文件的存儲路徑URL颈抚。
recordedDuration CMTime 只讀屬性踩衩,當前錄制的時間
recordedFileSize int64_t 只讀屬性,當前錄制的數(shù)據(jù)的大蟹泛骸(字節(jié))
recording BOOL 只讀屬性驱富,當前是否正在錄制。
recordingPaused BOOL 只讀屬性匹舞,當前錄制是否暫停褐鸥。

對于錄制文件的限制屬性:maxRecordedFileSizemaxRecordedDurationminFreeDiskSpaceLimit赐稽,達到限制時將停止錄制并且調(diào)用協(xié)議方法-captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:顯示相應(yīng)的錯誤叫榕。

2浑侥、開始,停止晰绎,暫停和恢復(fù)錄制

2.1锭吨、開始錄制

給定文件的存儲路徑URL,開始錄制寒匙。

- (void)startRecordingToOutputFileURL:(NSURL *)outputFileURL
recordingDelegate:(id<AVCaptureFileOutputRecordingDelegate>)delegate;
  • 參數(shù) outputFileURL:錄制文件的輸出路徑;如果不是有效的fileURL躏将,則此方法拋出異常NSInvalidArgumentException锄弱。
  • 參數(shù) delegate:記錄會話的委托對象。

如果錄制開始時已存在給定URL的文件祸憋,則記錄到新文件將失敗会宪。

在macOS中,在調(diào)用此方法錄制另一個文件時蚯窥,不需要去調(diào)用-stopRecording掸鹅。如果在已經(jīng)記錄現(xiàn)有輸出文件的同時調(diào)用此方法,則舊文件和新文件之間不會丟棄任何數(shù)據(jù)拦赠。

在iOS中巍沙,不支持幀文件精確切換。在再次調(diào)用此方法之前荷鼠,必須調(diào)用-stopRecording以避免任何錯誤句携。

當通過調(diào)用-stopRecording、通過使用此方法更改文件或由于錯誤而停止記錄時允乐,需要包含到文件中的其余數(shù)據(jù)將在后臺寫入矮嫉。因此,必須指定一個委托牍疏,當使用-captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:方法將所有數(shù)據(jù)寫入文件時蠢笋,該委托將被通知。錄制委托還可以選擇性地實現(xiàn)一些方法鳞陨,當數(shù)據(jù)開始寫入昨寞、錄制暫停并重新開始以及錄制即將結(jié)束時通知它。

在macOS中炊邦,如果在 -captureOutput:didOutputSampleBuffer:fromConnection:代理方法中調(diào)用此方法编矾,則保證寫入新文件的第一個樣本是傳遞給該方法的樣本緩沖區(qū)中包含的樣本。

2.2馁害、停止錄制

當前文件停止錄制窄俏。

- (void)stopRecording;

如果停止將新數(shù)據(jù)記錄到當前文件、并且不想繼續(xù)記錄到另一個文件時可以調(diào)用此方法碘菜。
如果要從一個文件切換到另一個文件凹蜈,則應(yīng)該使用新的fileURL調(diào)用-startRecordingToOutputFileURL:recordingDelegate:方法限寞。

通過調(diào)用此方法停止錄制;通過使用-startRecordingToOutputFileURL:recordingDelegate:方法更改文件仰坦;或者由于錯誤叫倍,需要包含在文件中的剩余數(shù)據(jù)將在后臺寫入。因此昧谊,在使用該文件之前褥蚯,必須等到使用-captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:方法將所有數(shù)據(jù)寫入文件時,通知-startRecordingToOutputFileURL:recordingDelegate:中指定的委托妈橄。

在macOS中庶近,如果在-captureOutput:didOutputSampleBuffer:fromConnection:代理方法中調(diào)用此方法,則保證寫入當前文件的最后一個樣本是在傳遞給該方法的樣本緩沖區(qū)中的那些樣本之前立即輸出的樣本眷蚓。

2.3鼻种、暫停錄制

文件暫停錄制。

- (void)pauseRecording;

調(diào)用-resumeRecording方法將多個不連續(xù)的媒體段記錄到單個文件中沙热。

在macOS中叉钥,如果在-captureOutput:didOutputSampleBuffer:fromConnection:代理方法中調(diào)用此方法,則保證寫入當前文件的最后一個樣本是在傳遞給該方法的樣本緩沖區(qū)中的那些樣本之前立即輸出的樣本篙贸。

2.4投队、暫停后恢復(fù)錄制

調(diào)用-pauseRecording方法暫停后,調(diào)用下述方法恢復(fù)錄制到當前輸出文件outputFileURL爵川。

- (void)resumeRecording;

在macOS中蛾洛,如果在-captureOutput:didOutputSampleBuffer:fromConnection:代理方法中調(diào)用此方法,則保證寫入當前文件的第一個樣本是傳遞給該方法的樣本緩沖區(qū)中包含的樣本雁芙。

3轧膘、AVCaptureFileOutputDelegate

AVCaptureFileOutputDelegate 該協(xié)議為AVCaptureFileOutput對象的委托定義了一個接口,用于監(jiān)視或控制媒體文件錄制兔甘。

3.1谎碍、是否需要準確的幀記錄

是否允許委托選擇在-captureOutput:didOutputSampleBuffer:fromConnection:方法中構(gòu)建準確的記錄。

- (BOOL)captureOutputShouldProvideSampleAccurateRecordingStart:(AVCaptureOutput *)output;
  • 參數(shù) captureOutput:與委托關(guān)聯(lián)的AVCaptureOutput實例洞焙。
  • 返回值:是否需要準確的幀記錄蟆淀。

OS X Mountain Lion系統(tǒng)之前的應(yīng)用程序中,實現(xiàn)-captureOutput:didOutputSampleBuffer:fromConnection:方法的代理可以通過在回調(diào)中調(diào)用-startRecordingToOutputFileURL:recordingDelegate:-stopRecording來確保啟動和停止記錄是幀精確的澡匪。幀準確記錄要求在AVCaptureSession開始運行時AVCaptureOutput應(yīng)用outputSettings熔任,因此它可以在任何給定的幀邊界上開始和/或停止記錄。在整個會話期間應(yīng)用壓縮設(shè)置會產(chǎn)生功耗唁情,散熱和CPU影響疑苔。

OS X Mountain Lion系統(tǒng)之后的應(yīng)用程序中,委托必須實施此方法以指示是否需要幀精確記錄甸鸟。AVCaptureFileOutput僅在添加委托時調(diào)用此方法一次惦费,而不再調(diào)用兵迅。如果返回NO,則AVCaptureFileOutput僅在調(diào)用-startRecordingToOutputFileURL:recordingDelegate:時應(yīng)用壓縮設(shè)置薪贫,并在錄制停止后禁用這些設(shè)置恍箭。

3.2、

讓委托有機會檢查錄制的數(shù)據(jù)瞧省,并在準確的時間開始和停止記錄扯夭。

- (void)captureOutput:(AVCaptureFileOutput *)output
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection;
  • 參數(shù)output:接收媒體數(shù)據(jù)的AVCaptureFileOutput
  • 參數(shù)sampleBuffer:包含樣本數(shù)據(jù)和有關(guān)樣本的其他信息鞍匾,例如其格式和顯示時間勉抓。
  • 參數(shù)connection:附加到接收示例數(shù)據(jù)的文件輸出的AVCaptureConnection對象。

每當文件輸出從給定連接接收到單個示例緩沖區(qū)(例如候学,單個視頻幀或音頻緩沖區(qū))時,就會調(diào)用此方法纵散。這使委托有機會在精確的樣本邊界開始和停止記錄或更改輸出文件梳码。如果在此方法中調(diào)用,文件輸出的-startRecordingToOutputFileURL:recordingDelegate:-resumeRecording方法保證在新文件中包含接收到的樣本緩沖區(qū)伍掀,而對-stopRecording-pauseRecording的調(diào)用保證在現(xiàn)有文件中包含當前樣本緩沖區(qū)中的所有樣本掰茶。

可以通過檢查CMSampleBuffer對象來收集特定于樣本的信息。如果從此方法調(diào)用蜜笤,樣本緩沖區(qū)始終包含單幀視頻濒蒋,但也可能包含多個音頻樣本。對于B幀視頻格式把兔,樣本始終按呈現(xiàn)順序傳送沪伙。

如果需要在此方法的作用域之外引用CMSampleBuffer對象,則必須保留它县好,然后在用完之后釋放它围橡。

為了保持最佳性能,一些樣本緩沖區(qū)直接引用可能需要由設(shè)備系統(tǒng)和其他捕獲輸入重用的內(nèi)存池缕贡。對于未壓縮的設(shè)備本機捕獲翁授,通常會出現(xiàn)這種情況,其中盡可能少地復(fù)制內(nèi)存塊晾咪。如果多個樣本緩沖區(qū)長時間引用此類內(nèi)存池收擦,則輸入將無法再將新樣本復(fù)制到內(nèi)存中,并且這些樣本將被丟棄谍倦。如果應(yīng)用程序通過保留提供的CMSampleBuffer對象太長時間而導(dǎo)致刪除樣本塞赂,但需要長時間訪問樣本數(shù)據(jù),請考慮將數(shù)據(jù)復(fù)制到新緩沖區(qū)中昼蛀,然后在樣本緩沖區(qū)上調(diào)用CFRelease() (如果以前保留過)减途,以便可以重用它引用的內(nèi)存酣藻。

不應(yīng)該假定這個方法將在特定的線程上被調(diào)用。此外鳍置,這種方法經(jīng)常被調(diào)用辽剧,因此必須有效地防止捕獲性能問題。

4税产、AVCaptureFileOutputRecordingDelegate

AVCaptureFileOutputRecordingDelegateAVCaptureFileOutput的協(xié)議接口怕轿,以響應(yīng)記錄單個文件的過程中發(fā)生的事件。AVCaptureFileOutput對象的委托必須實現(xiàn)該協(xié)議的方法辟拷。

-captureOutput:willFinishRecordingToOutputFileAtURL:fromConnections:error:方法和-captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:方法總是被調(diào)用撞羽,即使沒有寫入數(shù)據(jù)。

4.1衫冻、開始錄制
 - (void)captureOutput:(AVCaptureFileOutput *)output
 didStartRecordingToOutputFileAtURL:(NSURL *)fileURL
 fromConnections:(NSArray<AVCaptureConnection *> *)connections;

輸出開始寫入文件時通知委托:

  • 參數(shù)output:開始寫入文件的捕獲文件輸出诀紊。
  • 參數(shù)fileURL:正在寫入的文件的文件URL。
  • 參數(shù)connections:附加到文件輸出的AVCaptureConnection對象數(shù)組隅俘,提供正在寫入文件的數(shù)據(jù)邻奠。

如果錯誤條件阻止寫入任何數(shù)據(jù),則可能不會調(diào)用此方法为居。

4.2碌宴、即將停止錄制

在以下情況下將調(diào)用該方法:

  • 即將停止錄制文件時;
  • 調(diào)用了-startRecordingToOutputFileURL:recordingDelegate:方法時蒙畴;
  • 寫入文件發(fā)生錯誤時贰镣;
- (void)captureOutput:(AVCaptureFileOutput *)output
willFinishRecordingToOutputFileAtURL:(NSURL *)fileURL
fromConnections:(NSArray<AVCaptureConnection *> *)connections
error:(NSError *)error;

當輸出即將停止向文件寫入新示例時通知委托:

  • 參數(shù)output:捕獲文件輸出將完成寫入文件。
  • 參數(shù)fileURL:正在寫入的文件的fileURL膳凝。
  • 參數(shù)connections:附加到文件輸出的AVCaptureConnection對象數(shù)組碑隆,提供正在寫入文件的數(shù)據(jù)。
  • 參數(shù)error:描述導(dǎo)致文件停止錄制的錯誤原因蹬音,如果沒有錯誤則為nil干跛。

即使沒有數(shù)據(jù)成功寫入文件,也始終為每個記錄請求調(diào)用此方法祟绊。

4.3楼入、已經(jīng)停止錄制

在以下情況下將調(diào)用該方法:

  • 已經(jīng)停止錄制文件時;
  • 調(diào)用了-startRecordingToOutputFileURL:recordingDelegate:方法時牧抽;
  • 寫入文件發(fā)生錯誤時嘉熊;
- (void)captureOutput:(AVCaptureFileOutput *)output
didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL
fromConnections:(NSArray<AVCaptureConnection *> *)connections
error:(NSError *)error;

當所有待寫入數(shù)據(jù)寫入輸出文件時通知委托:

  • 參數(shù)output:已完成寫入文件的捕獲文件輸出。
  • 參數(shù)outputFileURL:正在寫入的文件的文件fileURL扬舒。
  • 參數(shù)connections:附加到文件輸出的AVCaptureConnection對象數(shù)組阐肤,提供正在寫入文件的數(shù)據(jù)。
  • 參數(shù)error:描述導(dǎo)致文件停止錄制的錯誤原因,如果沒有錯誤則為nil孕惜。

只要文件結(jié)束愧薛,就會調(diào)用此方法。即使沒有數(shù)據(jù)成功寫入文件衫画,也始終為每個記錄請求調(diào)用此方法毫炉。

4.4、成功暫停錄制
- (void)captureOutput:(AVCaptureFileOutput *)output
didPauseRecordingToOutputFileAtURL:(NSURL *)fileURL
fromConnections:(NSArray<AVCaptureConnection *> *)connections;

當正在錄制時調(diào)用削罩,并根據(jù)請求成功暫停錄制:

  • 參數(shù)output :暫停其文件記錄的捕獲文件輸出瞄勾。
  • 參數(shù)fileURL :正在寫入的文件的fileURL
  • 參數(shù)connections :附加到文件輸出的AVCaptureConnection對象數(shù)組弥激,提供正在寫入文件的數(shù)據(jù)进陡。

只要調(diào)用-pauseRecording方法,就會調(diào)用此方法微服。
委托對象可以安全地從此方法中更改文件輸出當前正在執(zhí)行的操作:例如趾疚,啟動新文件。如果手動或由于錯誤而停止記錄到文件以蕴,則無法保證調(diào)用此方法糙麦,即使先前調(diào)用了-pauseRecording

4.5舒裤、恢復(fù)錄制暫停文件
- (void)captureOutput:(AVCaptureFileOutput *)output
didResumeRecordingToOutputFileAtURL:(NSURL *)fileURL
fromConnections:(NSArray<AVCaptureConnection *> *)connections;

只要調(diào)用-resumeRecording方法,就會調(diào)用此方法觉吭。
委托對象可以安全地從此方法中更改文件輸出當前正在執(zhí)行的操作:例如腾供,啟動新文件。如果手動或由于錯誤而停止記錄到文件鲜滩,則無法保證調(diào)用此方法伴鳖,即使先前調(diào)用了-resumeRecording也是如此。

二徙硅、視頻錄制AVCaptureMovieFileOutput

AVCaptureMovieFileOutput 繼承自AVCaptureFileOutput榜聂,將視頻和音頻記錄到QuickTime電影文件的捕獲輸出。

這個類相當于AVCapturePhotoOutput的電影文件嗓蘑。使用它從AVCaptureSession內(nèi)容導(dǎo)出或保存電影文件须肆。

第一個軌道段的timeMapping.target.start必須是kCMTimeZero,并且當傳入前一個AVCompositionTrackSegmenttimeMapping.target時桩皿,每個后續(xù)軌道段的timeMapping.target.start必須等于CMTimeRangeGetEnd豌汇。可以使用-validateTrackSegments:error:確保軌道段數(shù)組符合此規(guī)則泄隔。

從ios12開始拒贱,照片格式不再列出不支持的AVCaptureMovieFileOutput類。如果構(gòu)造一個以照片格式作為輸入和電影文件輸出的AVCaptureSession,則可以錄制電影逻澳。電影中視頻軌道的分辨率遵循AVCaptureVideoDataOutput建立的約定闸天。也就是說,使用photo preset時斜做,會收到與屏幕大小近似的視頻緩沖區(qū)苞氮。視頻輸出是此配置中照片預(yù)覽的代理。如果將AVCaptureDevice格式設(shè)置為高分辨率照片格式陨享,將收到全分辨率(5,8,12mp)的視頻緩沖區(qū)。如果AVCaptureSessionautomatedConfiguresCaptureDeviceForWideColor屬性設(shè)置為YES抛姑,則AVCaptureSession選擇sRGB作為影片中的視頻顏色空間赞厕。可以通過向AVCaptureSession添加AVCapturePhotoOutput并為照片輸出配置其照片格式或AVCaptureSessionPresetPhoto預(yù)設(shè)設(shè)置來覆蓋此行為定硝。

1皿桑、配置電影

每個片段寫入的輸出秒數(shù); 默認值為10秒。kCMTimeInvalid禁用電影片段寫入蔬啡。

 @property(nonatomic) CMTime movieFragmentInterval;

QuickTime電影包含媒體示例和一個表诲侮,表中標識它們在文件中的位置。沒有示例表的電影文件是不可讀的箱蟆。在處理后的文件中沟绪,示例表通常出現(xiàn)在文件的開頭。它也可能出現(xiàn)在文件的末尾空猜,在這種情況下绽慈,標頭包含指向末尾示例表的指針。在記錄新影片文件時辈毯,由于尚不知道文件的大小坝疼,因此不可能編寫示例表。相反谆沃,必須在記錄完成時寫入表钝凶。如果沒有采取其他操作,這意味著如果記錄沒有成功完成(例如唁影,在發(fā)生崩潰的情況下)耕陷,文件數(shù)據(jù)就不可用(因為沒有示例表)。通過定期將“電影片段”插入到電影文件中据沈,可以逐步構(gòu)建示例表啃炸。這意味著如果文件沒有完全寫入,那么電影文件仍然是可用的(直到最后一個片段寫入時為止)卓舵。

// 輸出文件的元數(shù)據(jù)南用。可以使用它向錄制的電影文件添加元數(shù)據(jù),例如版權(quán)裹虫,創(chuàng)建日期等肿嘲。
 @property(nonatomic, copy) NSArray<AVMetadataItem *> *metadata;

2、管理輸出設(shè)置

2.1筑公、目前支持錄制文件的視頻編解碼器類型
 @property(nonatomic, readonly) NSArray<AVVideoCodecType> *availableVideoCodecTypes;

此列表中的第一個編解碼器是錄制電影文件的默認編解碼器雳窟。要使用不同的編解碼器進行錄制,調(diào)用-setOutputSettings:forConnection:方法匣屡,傳遞視頻設(shè)置字典封救,其中包含與此列表中其他值匹配的AVVideoCodecKey值。

2.2捣作、獲取設(shè)置字典支持的鍵的列表
 - (NSArray<NSString *> *)supportedOutputSettingsKeysForConnection:(AVCaptureConnection *)connection;
2.3誉结、獲取記錄時用于從給定連接重新編碼媒體的選項
 - (NSDictionary<NSString *,id> *)outputSettingsForConnection:(AVCaptureConnection *)connection;
  • 參數(shù)connection:提供要重新編碼的媒體的連接。
  • 返回值:輸出設(shè)置字典券躁。

如果返回空字典惩坑,則在寫入文件之前,不會更改連接中的媒體格式也拜。
如果使用nil字典調(diào)用-setOutputSettings:forConnection:此方法返回一個非nil以舒,反映AVCaptureSession當前sessionPreset使用的設(shè)置。

2.4慢哈、設(shè)置用于在記錄時從給定連接重新編碼媒體的選項字典
- (void)setOutputSettings:(NSDictionary<NSString *,id> *)outputSettings
forConnection:(AVCaptureConnection *)connection;
  • 參數(shù) outputSettings :輸出設(shè)置字典蔓钟。傳遞一個空字典,指定在寫入文件之前不應(yīng)更改連接中的媒體格式卵贱。傳遞nil以指定輸出格式應(yīng)由會話預(yù)設(shè)確定滥沫。
  • 參數(shù)connection :提供要重新編碼的媒體的連接。

有關(guān)輸出設(shè)置的詳細信息艰赞,請參閱音頻設(shè)置和音頻連接格式或視頻連接的視頻設(shè)置詞典佣谐。

3肚吏、設(shè)置方向

3.1方妖、獲取捕獲設(shè)備是否記錄視頻方向
 - (BOOL)recordsVideoOrientationAndMirroringChangesAsMetadataTrackForConnection:(AVCaptureConnection *)connection;
3.2、設(shè)置捕獲設(shè)備是否設(shè)置視頻方向
 - (void)setRecordsVideoOrientationAndMirroringChanges:(BOOL)doRecordChanges
 asMetadataTrackForConnection:(AVCaptureConnection *)connection;

三罚攀、音頻錄制AVCaptureAudioFileOutput

AVCaptureAudioFileOutput 繼承自AVCaptureFileOutput党觅,用于記錄音頻并將錄制的音頻保存到文件中。

AVCaptureAudioFileOutput實現(xiàn)AVCaptureFileOutput聲明的完整文件記錄接口斋泄,用于將媒體數(shù)據(jù)寫入音頻文件杯瞻。 此外,還可以配置特定于音頻文件格式的選項炫掐,包括將元數(shù)據(jù)集合寫入每個文件以及指定音頻編碼選項魁莉。然而,AVCaptureAudioFileOutput并不能調(diào)用-startRecordingToOutputFileURL:recordingDelegate:方法,改用-startRecordingToOutputFileURL:outputFileType:recordingDelegate:方法旗唁。

1畦浓、發(fā)現(xiàn)支持的類型

返回包含UTI的數(shù)組,標識AVCaptureAudioFileOutput可以寫入的文件類型检疫。

 + (NSArray<AVFileType> *)availableOutputFileTypes;

2讶请、開始錄制

告知接收方開始記錄指定格式的新文件,并指定在記錄完成時將通知的代理屎媳。

 - (void)startRecordingToOutputFileURL:(NSURL *)outputFileURL
 outputFileType:(AVFileType)fileType
 recordingDelegate:(id<AVCaptureFileOutputRecordingDelegate>)delegate;
  • 參數(shù) outputFileURL:輸出文件路徑夺溢;如果URL不是有效的fileURL,則此方法拋出NSInvalidArgumentException烛谊;如果錄制開始時已存在給定URL的文件风响,則記錄到新文件將失敗。
  • 參數(shù)fileType:UTI晒来,指示要寫入的文件的格式钞诡;常見音頻文件類型的UTI在AVMediaFormat.h中聲明。
  • 參數(shù)delegate:必須指定一個AVCaptureFileOutputRecordingDelegate委托湃崩,以便在錄制完成時收到通知荧降。

在另一個錄制正在進行時,無需在調(diào)用此方法之前調(diào)用-stopRecording攒读。如果在已經(jīng)記錄現(xiàn)有輸出文件的同時調(diào)用此方法朵诫,則舊文件和新文件之間不會丟棄任何媒體樣本。

當調(diào)用-stopRecording``錄制停止時薄扁,通過使用此方法更改文件剪返,或者由于錯誤,需要包含在文件中的剩余數(shù)據(jù)將在后臺寫入邓梅。因此脱盲,必須指定一個委托,當使用將所有數(shù)據(jù)寫入文件時將通知該委托-captureOutput:didFinishRecordingToOutputFileAtURL:fromConnections:error:```方法日缨。委托還可以選擇性地實現(xiàn)在數(shù)據(jù)開始寫入時钱反,暫停和恢復(fù)記錄時以及即將完成記錄時通知它的方法。

在macOS中匣距,如果在-captureOutput:didOutputSampleBuffer:fromConnection:代理方法中調(diào)用此方法面哥,則保證寫入新文件的第一個樣本是傳遞給該方法的樣本緩沖區(qū)中包含的樣本。

3毅待、配置輸出

屬性 數(shù)據(jù)類型 描述
audioSettings NSDictionary 輸出之前解碼或重新編碼的設(shè)置字典尚卫。此屬性的值是一個字典,音頻設(shè)置鍵值包含AVAudioSettings.h中尸红。如果將此屬性的值設(shè)置為nil吱涉,則輸出將以其設(shè)備本機格式檢出樣本刹泄。
metadata NSArray 錄制文件的元數(shù)據(jù)集合。僅支持ID3 v2.2怎爵,v2.3或v2.4樣式元數(shù)據(jù)項
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末循签,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疙咸,更是在濱河造成了極大的恐慌县匠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撒轮,死亡現(xiàn)場離奇詭異乞旦,居然都是意外死亡,警方通過查閱死者的電腦和手機题山,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門兰粉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人顶瞳,你說我怎么就攤上這事玖姑。” “怎么了慨菱?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵焰络,是天一觀的道長。 經(jīng)常有香客問我符喝,道長闪彼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任协饲,我火速辦了婚禮畏腕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘茉稠。我一直安慰自己描馅,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布而线。 她就那樣靜靜地躺著铭污,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吞获。 梳的紋絲不亂的頭發(fā)上况凉,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天谚鄙,我揣著相機與錄音各拷,去河邊找鬼。 笑死闷营,一個胖子當著我的面吹牛烤黍,可吹牛的內(nèi)容都是我干的知市。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼速蕊,長吁一口氣:“原來是場噩夢啊……” “哼嫂丙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起规哲,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤跟啤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唉锌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隅肥,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年袄简,在試婚紗的時候發(fā)現(xiàn)自己被綠了腥放。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡绿语,死狀恐怖秃症,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吕粹,我是刑警寧澤种柑,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站匹耕,受9級特大地震影響莹规,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泌神,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一良漱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧欢际,春花似錦母市、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浑槽,卻和暖如春蒋失,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桐玻。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工篙挽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人镊靴。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓铣卡,卻偏偏與公主長得像链韭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子煮落,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354