2010-11-18 27 views
5

大家好我正在一個應用程序記錄用戶的聲音,並將其保存到NSDocumentDirectory.The數據文件保存well.But問題是,我想播放這些files.I使用這個表視圖用NSDocumentDirectory中的文件數來填充它。但是表中只顯示了一個單元格當前的聲音文件。我在某處做錯了請幫助我。 我正在使用此代碼進行遊戲。如何從NSDocumentDirectory讀取數據

-(void)PlayAudio 
{ 


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

    NSString *documentsDirectory = [paths objectAtIndex:0]; 

    NSLog(@"strffdsa %@",documentsDirectory); 
    NSURL *fileURL = [NSURL fileURLWithPath:recorderFilePath]; 

    player = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: nil]; 
    player.numberOfLoops = 0; 
    //[fileURL release]; 

    [player play]; 
    [player setDelegate: self]; 

} 

哪裏recorderFilePath是文件。該路徑的路徑是用的NSDate frmattor.But沒有得到如何填充與居住在DocumentDirectory的所有文件表視圖幫助新每次。

請幫我...我是這種技術的新手。

在此先感謝所有........

回答

13

使用枚舉數來簡化遍歷Documents目錄以搜索音樂文件。

 //Use an enumerator to store all the valid music file paths at the top level of your App's Documents directory 
     NSDirectoryEnumerator *directoryEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:documentsDirectory]; 

     for (NSString *path in directoryEnumerator) 
     { 
      //check for all music file formats you need to play 
      if ([[path pathExtension] isEqualToString:@"mp3"] || [[path pathExtension] isEqualToString:@"aiff"]) 
      { 
       [myMusicFiles addObject:path];   
      } 
     } 

     //the NSArray 'myMusicFiles' will be the datasource for your tableview 
+0

嘿感謝NP它真的幫了我和我的排序是problem.You真的很好的朋友,我很欣賞這個..希望在未來也能幫助我。如果我們能夠通過電子郵件進行溝通,那將是一件好事。我的電子郵件地址是[email protected] – Sabby 2010-11-19 05:21:59

+0

非常感謝親愛的:-) – 2013-11-23 04:55:10

+0

很好男人,很好的答案 – 2014-04-09 04:41:05

1

你需要NSFileManagercontentsOfDirectoryAtPath:error:方法獲取文件的數組在請求目錄。然後遍歷該數組以找到要查找的文件名。

+0

嘿感謝DarkDust,NP再次整理出problem.Thanks幫助me.Take照顧兄弟......... – Sabby 2010-11-19 05:25:23