2

可能重複:
Can’t send email with video/audio attachment on iphone!iPhone SDK電子郵件視頻

所以在過去的幾天我一直在試圖通過電子郵件發送視頻。我成功地選擇了視頻,但我無法弄清楚如何將它放入電子郵件中。謝謝。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [picker dismissViewControllerAnimated:NO completion:NULL]; 
    NSURL *mediaUrl = [info objectForKey:UIImagePickerControllerMediaURL]; 

    MFMailComposeViewController *mailcomposer = [[MFMailComposeViewController alloc]init]; 
    mailcomposer.mailComposeDelegate = self; 





    if ([MFMailComposeViewController canSendMail]){ 

     [mailcomposer setToRecipients:[NSArray arrayWithObjects:@"[email protected]", nil]]; 
     [mailcomposer setSubject:@""]; 
     [mailcomposer setMessageBody:@"" isHTML:NO]; 
     [mailcomposer addAttachmentData:mediaUrl mimeType:@"video/mp4" fileName:@"Video"]; 
     [self presentViewController:mailcomposer animated:YES completion:NULL]; 

    } 


} 

回答

4

您要添加的URL作爲附件,您需要通過URL轉換爲數據,像這樣

NSData *videoData = [NSData dataWithContentsOfURL:mediaUrl]; 

附加的NSData然後

[mailcomposer addAttachmentData:videoData mimeType:@"video/mp4" fileName:@"Video"]; 
+1

不客氣!請接受答案,如果它是正確的 – shabbirv

+0

這是正確的答案。 Upvoted評論和回答,因爲答案從未被選爲「答案」。謝謝! –

0
[mailcomposer addAttachmentData:mediaUrl mimeType:@"video/mp4" fileName:@"Video"]; 

真的嗎?你沒有讀過MFMailComposerViewControllerdocumentation嗎? addAttachmentData:預計NSData不是的URL。您必須將文件讀入內存(使用NSData)並將該數據添加到郵件編輯器控制器。

但是,你應該不應該這樣做。大型視頻文件消耗大量內存。