2016-06-30 12 views
0

Ich bin sehr neu in der Programmierung in iOS und daher scheint die Frage ziemlich dumm, aber ich weiß wirklich nicht, was los ist.teilen Video auf iOS mit FB SDK

Also, ich folgte die Freigabe in iOS auf der https://developers.facebook.com/docs/sharing/ios und ich war erfolgreich im Teilen Link und Foto. Aber ich habe keine Ahnung, warum ich kein Video teilen kann. Ich verwende nicht UIImagePickerControllerReferenceURL, aber stattdessen verwende ich [[NSBundle mainBundle] URLForResource:@"xyz" withExtension:@"mp4"] für die videoURL.
Ist dies der Grund, warum die Freigabetaste nicht funktioniert?

Mein Ziel ist es, Benutzer Inhalte direkt von der App teilen zu lassen. Also möchte ich nicht, dass sie UIImagePickerControllerReferenceURL verwenden.
Hier ist der Code:

NSURL* videoURL = [[NSBundle mainBundle] URLForResource:@"xyz" withExtension:@"mp4"]; 
FBSDKShareVideo *video = [[FBSDKShareVideo alloc] init]; 
video.videoURL = videoURL; 
FBSDKShareVideoContent *content = [[FBSDKShareVideoContent alloc] init]; 
content.video = video; 

FBSDKShareButton *button = [[FBSDKShareButton alloc] init]; 
button.center = self.view.center; 
button.shareContent = content; 
[self.view addSubview:button]; 

Und Datei xyz.mp4 in einem Medienordner ist.

+0

können Sie Ihren Code einfügen hier. –

+0

@RohitKP, Ich habe die Bearbeitung auf die Frage gemacht, um den Code aufzunehmen. – user5497505

Antwort

2
NSURL* videoURL = [[NSBundle mainBundle] URLForResource:@"xyz" withExtension:@"mp4"]; 

mit diesem

NSURL* videoURL = [[NSBundle mainBundle] URLForResource:@"xyz" ofType:@"mp4"]; 

[self saveToPhotoAlbum:videoURL]; 

ersetzen Danach Dieses Video in Foto-Bibliothek speichern als Facebook Objektbibliothek URL erforderlich.

-(void)saveToPhotoAlbum:(NSURL*)url 
{ 
NSLog(@"srcURL: %@", url); 

    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    ALAssetsLibraryWriteVideoCompletionBlock videoWriteCompletionBlock = 
    ^(NSURL *newURL, NSError *error) { 
     if (error) { 
      NSLog(@"Error writing image with metadata to Photo Library: %@", error); 
     } else { 
      NSLog(@"Wrote image with metadata to Photo Library %@", newURL.absoluteString); 
      url_new = newURL; 
     } 
    }; 

    if ([library videoAtPathIsCompatibleWithSavedPhotosAlbum:url]) 
    { 
     [library writeVideoAtPathToSavedPhotosAlbum:url 
            completionBlock:videoWriteCompletionBlock]; 
    } 
} 

dann

FBSDKShareDialog *shareDialog = [[FBSDKShareDialog alloc] init];  
NSURL *videoURL = url_new; 
FBSDKShareVideo *video = [[FBSDKShareVideo alloc] init]; 
video.videoURL = videoURL; 
FBSDKShareVideoContent *content = [[FBSDKShareVideoContent alloc] init]; 
content.video = video; 
shareDialog.shareContent = content; 
shareDialog.delegate = self; 
[shareDialog show];