2012-06-29 69 views
0

我有一個負責錄製音頻的視圖。我怎樣才能錄製幾個音頻並在桌面視圖中顯示它們? 我試圖使用文檔目錄來保存記錄的音頻:在桌面視圖中顯示錄製的音頻

NSArray *folders = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 

NSString *documentsFolder = [folders objectAtIndex:0]; 

NSString *recordedAudio = [documentsFolder stringByAppendingPathComponent:newAudio]; 

newAudio是包含與後綴的.m4a用戶輸入新的音頻名的字符串。 調用已保存的音頻我試圖像這樣:

NSArray *folders = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

NSString *documentsFolder = [folders objectAtIndex:0]; 

NSArray *folderContents = [[NSArray alloc] initWithContentsOfFile:documentsFolder]; 

我預計folderContents必須存放在documentsFolder所以可以載入我的表中的所有音頻,但其數爲0。我在新docs目錄,可能我錯過了一些東西,或者做錯了所有事情。

什麼是錯的,或者有另一種方法來實現它?

+1

這將返回字符串或路徑而不是數組.. – Abhishek

+0

更多信息[here](http://stackoverflow.com/questions/6821517/save-an-image-to-application-documents-folder-從-的UIView-ON-IOS)。 – Dima

回答

1

您正在錯誤地獲取文檔目錄的內容。這是正確的方式:

NSArray *folderContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsFolder error:nil];

文件不是一個文件,它是一個文件夾。

編輯:這是你如何保存文件

假設你有一個NSData對象,如

NSData *audioData = ...; // initialiazed with your recording

您創建recordedAudio字符串,它實際上只是文件名,你以後想要寫入(應該可能叫做audioPath什麼的),你需要加上這個:

[audioData writeToFile:recordedAudio atomically:YES];

+0

謝謝!我稍後再嘗試,然後再回來告訴我們是否有效。而我儲蓄的方式是正確的? – douglasd3

+1

你實際上並沒有保存文件。編輯我的答案,告訴你如何。 – Dima

+0

它工作得很好!謝謝@迪瑪 – douglasd3

相關問題