كيفية تنزيل ملف WAV من الويب إلى موقع على iPhone باستخدام NSFileHandle و NsurlConnection؟

StackOverflow https://stackoverflow.com/questions/2535001

سؤال

أرغب في تنزيل ملف WAV من خدمة ويب ، وتخزينه على iPhone وأشغله باستخدام AvaudiOplayer. يبدو أن باستخدام NSFileHandle و NsurlConnection حلاً قابلاً للتطبيق عند التعامل مع ملفات كبيرة نسبيًا. ومع ذلك ، بعد تشغيل التطبيق في جهاز المحاكاة ، لا أرى أي ملف محفوظ ضمن الدليل المحدد (nShomedirectory/TMP). فيما يلي رمز الأساسي الخاص بي. أين أفعل خطأ؟ أي أفكار موضع تقدير!

#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];

}
هل كانت مفيدة؟

المحلول

NSFileHandle fileHandleForWritingAtPath: يتطلب أن يكون الملف موجودًا بالفعل. كيف تقوم بإنشاء الملف؟

نصائح أخرى

اين

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

مندوب؟

هذا هو المكان الذي يجب أن تكتب/حفظ الملف.

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

هذا هو المكان الذي تقوم فيه بإلحاق البيانات التي تتلقاها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top