2013-12-22 3 views
1

Я пытаюсь опубликовать видео на Facebook, vimeo, независимо от UIActivityViewController. Я использую iOS7. Я слышал, что это возможно в iOS7, но по какой-то причине у меня возникают проблемы с его работой.Сообщение о публикации URL-адреса видео через UIactivityViewController

Мой код:

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); 
+0

вы уверены, что вам нужны активы? Я отправляю PDF-файлы, но я помещаю только файл в элементы активности, без актива: – thorb65

+0

Я не знаю, может быть, мне не нужен объект, но я не отправляю PDF, который хочу отправить видео. Вы знаете, как я мог это сделать? Активы не работают, поэтому я думаю, что, вероятно, правильно, что мне это не нужно. – huddie96

+0

Я бы попробовал добавить url непосредственно к activityItems, его вложение, как и многие другие типы файлов, а для вложения вам нужно добавить файлURL. – thorb65

ответ

2

Вам не нужно заниматься активом. фильм похож на любой другой файл типа вложения, и для этого вам нужен только 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]; 
Смежные вопросы