2010-11-18 98 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