Как читать данные из NSDocumentDirectory - PullRequest
5 голосов
/ 18 ноября 2010

Привет всем, я работаю над приложением, которое записывает звук пользователя и сохраняет его в 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. Но не получить, как заполнить табличное представление со всеми файламипроживающих в DocumentDirectory.

Пожалуйста, помогите мне 2 ... Я новичок в этой технологии.

Заранее спасибо всем ........

Ответы [ 2 ]

13 голосов
/ 18 ноября 2010

Используйте перечислитель, чтобы упростить итерацию в каталоге «Документы» для поиска музыкальных файлов.

        //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
1 голос
/ 18 ноября 2010

Вам необходим метод NSFileManager contentsOfDirectoryAtPath:error:, чтобы получить массив файлов в каталоге запросов. Затем выполните итерацию по этому массиву, чтобы найти имя файла, который вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...