2011-11-18 5 views
0

여러 개의 비디오를 YouTube에 업로드해야하는 응용 프로그램을 만들고 있습니다. GData의 문제는 정보를 콜백 함수에 전달하여 다른 업로드를 구별 할 수 없다는 것입니다. ASIHttpRequest에서iOS GData 여러 개의 youtube 업로드

(void)uploadTicket:(GDataServiceTicket *)ticket 
    finishedWithEntry:(GDataEntryYouTubeVideo *)videoEntry 
       error:(NSError *)error 

사용자가 requestFinish 콜백 정보를 전달할 수 있도록하는 "사용자 정보"속성이있다. GData youtube 업로드 요청은 어떻게됩니까?

- (void)uploadToYoutube: (NSString *)login andPassword:(NSString *)password withVideo:(NSData *)videoData forSighting:(SightingDB *)sighting { 


    [service setYouTubeDeveloperKey:DEVELOPER_KEY]; 

    NSURL *url = [GDataServiceGoogleYouTube youTubeUploadURLForUserID:kGDataServiceDefaultUser]; 


    NSString *titleStr = @"title"; 

    // gather all the metadata needed for the mediaGroup 

    GDataMediaTitle *title = [GDataMediaTitle textConstructWithString:titleStr]; 
    [titleStr release]; 

    NSString *categoryStr = @"Entertainment"; 
    GDataMediaCategory *category = [GDataMediaCategory mediaCategoryWithString:categoryStr]; 
    [category setScheme:kGDataSchemeYouTubeCategory]; 

    NSString *descStr = @"descripion" 

    GDataMediaDescription *desc = [GDataMediaDescription textConstructWithString:descStr]; 
    [descStr release]; 

    NSArray *kwords = [[NSArray alloc] initWithObjects:@"xxx",@"weee",nil]; 
    GDataMediaKeywords *keywords = [GDataMediaKeywords keywordsWithStrings:kwords]; 



    BOOL isPrivate = NO; 

    GDataYouTubeMediaGroup *mediaGroup = [GDataYouTubeMediaGroup mediaGroup]; 
    [mediaGroup setMediaTitle:title]; 
    [mediaGroup setMediaDescription:desc]; 
    [mediaGroup addMediaCategory:category]; 
    [mediaGroup setMediaKeywords:keywords]; 
    [mediaGroup setIsPrivate:isPrivate]; 

    NSString *mimeType = [GDataUtilities MIMETypeForFileAtPath:@"" 
               defaultMIMEType:@"video/mp4"]; 

    // create the upload entry with the mediaGroup and the file data 
    GDataEntryYouTubeUpload *entry; 

    entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:mediaGroup 
                  data:videoData 
                 MIMEType:mimeType 
                  slug:@"movie.mov"]; 



    SEL progressSel = @selector(ticket:hasDeliveredByteCount:ofTotalByteCount:); 
    [service setServiceUploadProgressSelector:progressSel]; 

    GDataServiceTicket *ticket; 
    ticket = [service fetchEntryByInsertingEntry:entry 
             forFeedURL:url 
             delegate:self 
           didFinishSelector:@selector(uploadTicket:finishedWithEntry:error:)]; 

답변

0

티켓은 setProperty : forKey : 및 setUserData :를 지원합니다.

또는 대리자 및 선택기 대신 블록 콜백을 사용하십시오.