Можно ли загружать изображения, видео на iphone? - PullRequest
0 голосов
/ 25 января 2010

Я создаю приложение, в котором мы делаем обновления для изображений и видео, и мне было интересно, можно ли было загрузить видео / изображения с веб-службы, которая будет размещать эти ресурсы где-то на iphone программно?

Может быть через сервис curl или ftp?

Ответы [ 3 ]

2 голосов
/ 26 января 2010

Существует множество способов загрузки файлов с удаленных серверов на iPhone, для некоторых даже требуется всего одна строка кода.

Самый простой способ может быть:

[NSData dataWithContentsOfURL:fileURL]

Но это будет блокировать ваш код до тех пор, пока файл не будет загружен, возможно, более удобным решением будет использование NSURLConnection

NSURLRequest *request = [NSURLRequest requestWithURL:fileURL];
[NSURLConnection connectionWithRequest:request delegate:self];

И реализовать методы делегата для NSURLConnection

Сохранение файлов также может быть выполнено несколькими способами, простейшим из которых может быть:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *localFilePath = [documentsDirectory stringByAppendingPathComponent:@"newFileName.ext"];
[NSData writeToFile:localFilePath atomically:YES];

Что сохранит данные в каталоге документов вашего приложения

1 голос
/ 25 января 2010

Вы можете загрузить на телефон все, что вам нравится (конечно, с учетом пропускной способности и ограничений памяти). Однако только фильмы определенных форматов (например, m4v, но не файлы wmv) будут воспроизводиться на устройстве.

0 голосов
/ 26 января 2010

да, это возможно, есть несколько мест (tmp и Documents), в которые вы можете записывать файлы - если вы запишите загруженный файл в каталог Documents, файл будет доступен при следующем запуске приложения и будет даже сохраняться между версиями вашего приложения по мере его обновления. Вы также можете записывать и редактировать файлы в каталоге «Документы», в отличие от файлов в каталоге ресурсов вашего приложения, которые не могут обновляться после установки. Это будет сложно для вас, так как для любого данного файла будет версия, поставляемая с установкой приложения (в Ресурсах), которую вы не можете перезаписать или отредактировать, а затем новая версия в Документах, так что вашей логике нужно будет видеть если в Documents есть более новая версия контента, и воспроизведите ее, а затем откройте каталог ресурсов приложения.

Для загрузки, я рекомендую использовать прекрасную библиотеку ASIHTTPRequest lib для просмотра всех файлов, чтобы сделать хорошую асинхронную / фоновую загрузку файлов на диск, с информацией о прогрессе и регулированием пропускной способности (это ключ).

http://allseeing -i.com / ASIHTTPRequest /

Другая часть, которую следует учитывать, заключается в том, что Apple будет отклонять приложения из-за чрезмерного использования полосы пропускания, когда не используется Wi-Fi, поэтому либо вам нужно ограничить большие загрузки только через Wi-Fi, либо вам нужно увеличить пропускную способность до 1 Мб / мин. ASIHTTPRequest делает это очень хорошо, и хотя это не является гарантией от Apple, это намного лучше, чем не регулирование.

Стоит также упомянуть, что для потокового видео вам теперь нужно использовать потоковую передачу http в прямом эфире, но если вы не играете во время загрузки, а загружаете его только для воспроизведения позже, я думаю, все, что вам нужно беспокоиться, это не выходя за пределы пропускной способности, используя работающий формат и записывая файл в Documents, чтобы он сохранялся между запусками и обновлениями приложения.

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