Подтвердить что ты не робот

Как загрузить аудио/видео файлы из Интернета и сохранить в приложении iPhone?

Я разрабатываю приложение для iPhone для музыки. Я хочу дать некоторые параметры пользователю, чтобы они могли прослушивать песню/музыку с помощью потоковой передачи или они могут загружать музыку в приложение. Я знаю, как программно передавать потоки аудиофайлов в приложении. Но я не знаю, как загрузить аудиофайлы в приложении и воспроизвести аудио после загрузки. А также пользователь может приостановить загрузку во время загрузки. Можно ли это сделать? Может ли кто-нибудь направить меня и, пожалуйста, поделитесь с нами каким-нибудь образцовым кодом или учебным пособием? У меня есть еще одно сомнение: не могли бы вы помочь мне создать папку внутри приложения? Пожалуйста, помогите мне. Спасибо заранее.

4b9b3361

Ответ 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];

Ответ 2

Да, вы можете загружать аудиофайлы и воспроизводить загруженные файлы через AVAudioPlayer. Я не знаю, как сделать паузу при загрузке, но я загрузил аудио и играл. Вы можете скачать либо запрос ASIHTTP, либо другой.

Вы можете следовать этим ссылкам.