Ответ 1
Создание папки
Для каждого приложения у вас есть Documents Folder
. Здесь хранятся все файлы, которые вы используете в своем приложении. Если вы хотите создать больше каталогов здесь, вы бы сделали что-то вроде этого:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"MyNewFolder"];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder if it doesn't already exist
Загрузка
Если вы хотите загрузить аудиофайлы из Интернета, то вы хотите посмотреть на асинхронный метод его выполнения. Это означает, что приложение может продолжать делать что-то, пока загрузка происходит в фоновом режиме.
Для этого я рекомендую использовать ASIHTTPREQUEST. Это отлично подходит для выполнения любых запросов на скачивание, предоставляя вам множество опций, таких как приостановка загрузки (по вашему усмотрению).
На веб-сайте имеется большое количество документации по загрузке и хранению файла. Взгляните на раздел "Загрузка файла" на странице this.
Вы бы просто сделали что-то вроде:
NSURL *url = [NSURL URLWithString:@"http://www.fileurl.com/example.mp3"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:[NSString stringWithFormat:@"%@",dataPath]]; //use the path from earlier
[request setDelegate:self];
[request startAsynchronous];
Затем просто обрабатывайте прогресс и завершение через методы делегата, которые предлагает ASIHTTPRequest.
Игра
Воспроизведение файла очень просто. Как только он появится на устройстве, и вы знаете, где он находится, просто загрузите его в аудиоплеер.
Здесь есть отличный учебник по использованию AVAudioPlayer для воспроизведения звуков. Очень простой пример его использования в вашем случае:
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audiofile.mp3",dataPath];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
if (audioPlayer == nil)
NSLog([error description]);
else
[audioPlayer play];