如何使用iOS中的UIActivityViewController将视频从我的应用程序共享到YouTube和Instagram应用程序?
问题描述:
我想分享视频从我的应用程序到youtube和instagram使用UIActivityViewController。但是我得到的输出像下面提到的图像。如何使用iOS中的UIActivityViewController将视频从我的应用程序共享到YouTube和Instagram应用程序?
但我的期望是,将YouTube和Instagram的应用归入此UIActivityViewController为影片。像下面提到的图像。此图像取自设备相册。
我的代码是:
- (IBAction)ShareVideo:(id)sender
{
NSString *[email protected]"Video Sharing ";
NSString *[email protected]"India";
NSString *textObject = @"Video Sharing Test";
NSData *videoData = [NSData dataWithContentsOfURL:movieURL]; //movieURL contains the video taken from photoAlbum
NSArray *objectsToShare = @[mySubject,textLocationA,textObject,videoData,movieURL];
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];
// Exclude all activities except AirDrop.
NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook,
UIActivityTypePostToWeibo,
UIActivityTypeMessage, UIActivityTypeMail,
UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo];
controller.excludedActivityTypes = excludedActivities;
//-- define the activity view completion handler
controller.completionHandler = ^(NSString *activityType, BOOL completed){
NSLog(@"Activity Type selected: %@", activityType);
if (completed) {
NSLog(@"Selected activity was performed.");
} else {
if (activityType == NULL) {
NSLog(@"User dismissed the view controller without making a selection.");
} else {
NSLog(@"Activity was not performed.");
}
}
};
//-- define activity to be excluded (if any)
controller.excludedActivityTypes = [NSArray arrayWithObjects:UIActivityTypeAssignToContact, nil];
[controller setCompletionHandler:^(NSString *activityType, BOOL completed) {
if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
if (completed)
{
NSLog(@"facebook");
}
}
else if ([activityType isEqualToString:UIActivityTypeSaveToCameraRoll]) {
if (completed)
{
NSLog(@"Video Saved");
}
}
else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
if (completed)
{
NSLog(@"twittter");
}
}
}];
// Present the controller
[self presentViewController:controller animated:YES completion:nil];
}
请给我一些想法来处理这个过程。
答
- 您必须添加自己的自定义UIActivity YouTube的:How can I create a custom UIActivity in iOS?
- 添加共享对话框。您可以使用此库:https://github.com/romaonthego/REComposeViewController
- 使用API进行共享。感谢@UserAwesome:http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#Uploading_Videos
OR
你可以尝试找到现有的组件它。 :)
答
要在UIActivityViewController中添加YouTube,您必须自行定制UIActivityViewController。请参阅How can I create a custom UIActivity in iOS?我在UIActivityViewController中添加了一个自定义Youtube图标,并启用将视频上传到Youtube。
如何将视频上传到YouTube,您可以阅读这个https://nsrover.wordpress.com/2014/04/23/youtube-api-on-ios/我测试过了。有用。
@ Kramnik0 - 看到这个http://*.com/questions/20628620/youtube-and-uiactivityview-on-ios – Sabs