2

可能重复:
无法在 iPhone 上发送带有视频/音频附件的电子邮件!

所以在过去的几天里,我一直在尝试通过电子邮件发送视频。我成功地选择了视频,但我不知道如何将其放入电子邮件中。谢谢。

- (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:@"random@random.com", nil]];
        [mailcomposer setSubject:@""];
        [mailcomposer setMessageBody:@"" isHTML:NO];
        [mailcomposer addAttachmentData:mediaUrl mimeType:@"video/mp4" fileName:@"Video"];
        [self presentViewController:mailcomposer animated:YES completion:NULL];

    }


}
4

2 回答 2

4

您正在将 URL 添加为附件,您需要通过将该 URL 转换为这样的数据来附加 NSData

NSData *videoData = [NSData dataWithContentsOfURL:mediaUrl];

接着

[mailcomposer addAttachmentData:videoData mimeType:@"video/mp4" fileName:@"Video"];
于 2012-10-27T19:06:19.513 回答
0
[mailcomposer addAttachmentData:mediaUrl mimeType:@"video/mp4" fileName:@"Video"];

严重地?您没有阅读 的文档MFMailComposerViewControlleraddAttachmentData:需要一个NSData不是一个 URL。您必须将文件读入内存(使用 NSData)并将该数据添加到邮件编写器控制器。

但是你可能不应该这样做。大型视频文件会占用大量内存。

于 2012-10-27T19:07:43.917 回答