iOS GData 多个 YouTube 上传
我正在制作一个需要将多个视频上传到 youtube 的应用程序。 GData 的问题是我不知道如何将信息传递给它的回调函数,以便我可以区分不同的上传。
(void)uploadTicket:(GDataServiceTicket *)ticket
finishedWithEntry:(GDataEntryYouTubeVideo *)videoEntry
error:(NSError *)error
在 ASIHttpRequest 中,有一个“userInfo”属性,允许用户将信息传递给 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:)];
I am making an application that needs to upload several videos to youtube. THe problem with GData is that I don't know how to pass information to its callback function so I can distinguish between different uploads.
(void)uploadTicket:(GDataServiceTicket *)ticket
finishedWithEntry:(GDataEntryYouTubeVideo *)videoEntry
error:(NSError *)error
In ASIHttpRequest there is the "userInfo" property to allow the user to pass information to the requestFinish callback. What about in GData youtube upload requests?
- (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:)];
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该票证支持 setProperty:forKey: 以及 setUserData:。
或者只使用块回调而不是委托和选择器。
The ticket supports setProperty:forKey: as well as setUserData:.
Or just use blocks callbacks rather than a delegate and selector.