2010-03-28 6 views
1

웹 서비스에서 wav 파일을 다운로드하고 아이폰에 캐시하고 AVAudioPlayer를 사용하여 재생하려고합니다. 비교적 큰 파일을 다룰 때는 NSFileHandle과 NSURLConnection을 사용하는 것이 가능한 해결책으로 보인다. 그러나 시뮬레이터에서 응용 프로그램을 실행 한 후에는 정의 된 디렉토리 (NSHomeDirectory/tmp) 아래에 저장된 파일이 표시되지 않습니다. 아래는 내 기본 코드입니다. 내가 어디에서 잘못하고 있니? 어떤 생각이라도 감사드립니다!NSFileHandle 및 NSURLConnection을 사용하여 웹에서 WAF 파일을 iPhone의 위치로 다운로드하는 방법은 무엇입니까?

#define TEMP_FOLDER [NSHomeDirectory() stringByAppendingPathComponent:@"tmp"] 

- (void)downloadToFile:(NSString*)name 
{ 
    NSString* filePath = [[NSString stringWithFormat:@"%@/%@.wav", TEMP_FOLDER, name] retain]; 
    self.localFilePath = filePath; 

    // set up FileHandle 
    self.audioFile = [[NSFileHandle fileHandleForWritingAtPath:localFilePath] retain]; 
    [filePath release]; 

    // Open the connection 
    NSURLRequest* request = [NSURLRequest 
          requestWithURL:self.webURL 
          cachePolicy:NSURLRequestUseProtocolCachePolicy 
          timeoutInterval:60.0]; 
    NSURLConnection* connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

} 

#pragma mark - 
#pragma mark NSURLConnection methods 

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data 
{ 
    [self.audioFile writeData:data]; 
} 

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError*)error 
{ 
    NSLog(@"Connection failed to downloading sound: %@", [error description]); 
} 

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    [connection release]; 
    [audioFile closeFile]; 

} 
+0

'TEMP_FOLDER'의 값은 무엇입니까? –

답변

3

NSFileHandle fileHandleForWritingAtPath:에는 파일이 이미 존재해야합니다. 파일을 어떻게 작성하고 있습니까?

+0

나는 그것이 어리석은 것으로 판명 될 것을 알았다. 나는 그것을 몰랐다. 이제 NSFileManager를 설정 한 후 파일을 가져 왔습니다. 고마워요! – saurb

+0

+1. 그것이 오류 또는 아무것도 던지지 않을 것이라고 흥미 롭군요 ... 나는 그 모든 데이터로 무엇을하고 있었는지 궁금합니다. – ajacian81

0

는 어디

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 

위임입니까?

여기가 파일을 쓰거나 저장해야하는 곳입니다.

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data 

여기서받는 데이터를 추가합니다.

관련 문제