2010-01-25 7 views
0

이미지 및 비디오에 대한 업데이트를 수행하는 응용 프로그램을 구축하고 있으며 이러한 자산을 프로그래밍 방식으로 어딘가에 호스팅 할 웹 서비스에서 비디오/이미지를 다운로드 할 수 있는지 궁금합니다.아이폰에 이미지, 비디오를 다운로드 할 수 있습니까?

아마도 컬 서비스 또는 ftp를 통해 가능합니까?

답변

1

좋아하는 것을 전화로 다운로드 할 수 있습니다 (물론 대역폭 및 저장 제한 조건에 따라 달라질 수 있습니다). 그러나 특정 형식의 영화 (예 : wmv 파일이 아닌 m4v) 만 실제로 기기에서 재생할 수 있습니다.

0

예, 가능합니다. 파일을 쓸 수있는 장소 (tmp 및 Documents)가 여러 개 있습니다. 다운로드 한 파일을 Documents 디렉토리에 쓰면 다음에 앱을 시작할 때 파일을 사용할 수 있습니다. 업그레이드 될 때 앱 버전간에 계속 유지됩니다. 또한 설치 후 업데이트 할 수없는 앱의 Resource 디렉토리에있는 파일과 달리 Documents 디렉토리의 파일에 쓰고 편집 할 수 있습니다. 어떤 파일에 대해서도 (리소스에서) 덮어 쓰기 또는 편집 할 수없는 응용 프로그램 설치와 함께 제공된 버전이있을 것이므로 문서에서 새로운 버전이 나오기 때문에 이것은 까다로울 것입니다. 문서에 최신 버전의 콘텐츠가 있고이를 재생하고 앱의 Resource 디렉토리에 폴백하면됩니다.

다운로드하려면 진행 정보 및 대역폭 조절 (이것이 핵심)으로 파일을 디스크에 비동기식/백그라운드로 다운로드 할 때 멋진 ASIHTTPRequest lib를 사용하는 것이 좋습니다.

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

생각이 다른 부분은 애플이 Wi-Fi에 연결되지 않은 과도한 대역폭 사용을위한 애플 리케이션을 거부 할 것입니다, 그러니 당신은 단지 와이파이 이상으로 큰 다운로드를 제한 할 필요하거나 대역폭을 스로틀 필요 내지 약 1mb/분이다. ASIHTTPRequest는이 작업을 매우 잘 수행하며, Apple에 의해 존중받지 못한다는 보장은 없지만 제한하지 않는 것보다 훨씬 낫습니다.

스트리밍 된 비디오의 경우 http 라이브 스트리밍을 사용해야한다는 것도 언급 할 가치가 있습니다.하지만 다운로드 할 때 재생하지 않고 나중에 재생하기 위해 다운로드하는 경우에는 걱정할 필요가 없습니다. 는 대역폭 제한을 초과하지 않으며 작동하는 형식을 사용하고 파일을 Documents에 기록하여 실행과 앱 업데이트간에 유지되도록합니다.

2

원격 서버에서 iPhone으로 파일을 다운로드하는 방법에는 여러 가지가 있으며, 일부는 코드 한 줄만 있으면됩니다.

가장 간단한 방법이 될 수 있습니다

[NSData dataWithContentsOfURL:fileURL] 

하지만이 파일이 다운로드 될 때까지 코드를 차단하는 것보다 가능한 솔루션은

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

있는 NSURLConnection

를 사용하여 대리자를 구현하는 아마 NSURLConnection의 메소드

파일 저장은 여러 가지 방법으로 수행 할 수 있습니다. 가장 간단한 방법은

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

데이터를 앱의 문서 디렉토리에 저장합니다.

관련 문제