【问题标题】:Issue posting Video URL through UIactivityViewController通过 UIactivityViewController 发布视频 URL 问题
【发布时间】:2013-12-23 01:19:38
【问题描述】:

我正在尝试通过 UIActivityViewController 将视频发布到 Facebook、vimeo 等。我正在使用iOS7。我听说它在 iOS7 中是可能的,但由于某种原因,我无法让它工作。

我的代码是:

NSString *shareString = @"My Personal Flick";
    NSURL *url = _URL;
    AVURLAsset *anAsset = [[AVURLAsset alloc] initWithURL:url options:nil];

NSArray *activityItems = [NSArray arrayWithObjects:shareString, anAsset, nil];

UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

[self presentViewController:activityViewController animated:YES completion:nil];

谁能解释一下我哪里出错了?

只是为了了解我有一个打开 UIImagePickerViewController 的按钮,我可以在其中选择一个视频,然后它将视频保存为 _URL - 那是我从中获取 _URL。

------CODE FOR CREATING _URL OF VIDEO FILE-----------
- (IBAction)chooseImage:(id)sender {
    NSLog(@"Chose Image.");
    self.imagePicker = [[UIImagePickerController alloc] init];
    self.imagePicker.delegate = self;
    [self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
    _imagePicker.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil];

    [self presentViewController:self.imagePicker animated:YES completion:nil];

}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{


NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];

if (CFStringCompare ((__bridge CFStringRef) mediaType, kUTTypeMovie, 0)
    == kCFCompareEqualTo)
{

    NSString *moviePath = [[info objectForKey:UIImagePickerControllerMediaURL] path];

    NSURL *_URL=(NSURL*)[info objectForKey:UIImagePickerControllerMediaURL];

     NSLog(@"%@",moviePath);

    if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath)) {
        UISaveVideoAtPathToSavedPhotosAlbum (moviePath, nil, nil, nil);

【问题讨论】:

  • 您确定需要这些资产吗?我正在发送 pdf 文件,但我只将 fileurl 放入活动项目,没有资产:
  • 我不知道也许我不需要资产,但我不发送 PDF 我想发送视频。你知道我怎么能这样做吗?资产不工作,所以我猜你可能是对的,我不需要它。
  • 我会尝试将 url 直接添加到 activityItems,它是一个附件,就像许多其他文件类型一样,对于附件,您只需要添加 fileURL。
  • 所以只是 NSURL *url =_URL??如果是这样,那么我可能没有正确存储 _URL。如果您不介意,您可以查看我创建 _URL 的代码,看看是否有任何问题?我会在我的问题中发布它 - 我将不胜感激。
  • 我根据您的编辑更改了我的代码,但是当我尝试使用 UIactivityViewController 发布时,没有附加视频。任何想法?感谢您迄今为止的帮助。这一直困扰着我一段时间

标签: ios ios7 uiactivityviewcontroller


【解决方案1】:

您不需要资产。这部电影就像任何其他文件类型的附件一样,为此您只需要 url。执行以下操作:

在您的 .h 文件中:

@property (nonatomic, retain) NSURL *fileURL;

在您的 .m 文件中: 而不是

NSURL *_URL=(NSURL*)[info objectForKey:UIImagePickerControllerMediaURL];

使用

self.fileURL = (NSURL*)[info objectForKey:UIImagePickerControllerMediaURL];

而不是

NSURL *url = _URL;
AVURLAsset *anAsset = [[AVURLAsset alloc] initWithURL:url options:nil];
NSArray *activityItems = [NSArray arrayWithObjects:shareString, anAsset, nil];

简单地使用:

NSArray *activityItems = [NSArray arrayWithObjects:shareString, self.fileURL, nil];

【讨论】:

    猜你喜欢
    • 2019-12-16
    • 1970-01-01
    • 2015-10-20
    • 2014-04-10
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    相关资源
    最近更新 更多