Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中将视频附加到电子邮件_Ios_Objective C_Nsdata_Mfmailcomposeviewcontroller - Fatal编程技术网

在iOS中将视频附加到电子邮件

在iOS中将视频附加到电子邮件,ios,objective-c,nsdata,mfmailcomposeviewcontroller,Ios,Objective C,Nsdata,Mfmailcomposeviewcontroller,我正在尝试将视频附加到电子邮件。这不是本地视频,所以我将其写入文件。然后我从该文件中获取数据并将其附加到电子邮件中。当电子邮件出现时,唯一的文件名是“video.mp4”,没有视频 MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init]; controller.mailComposeDelegate = self; NSData *videoData = [NSData dataW

我正在尝试将视频附加到电子邮件。这不是本地视频,所以我将其写入文件。然后我从该文件中获取数据并将其附加到电子邮件中。当电子邮件出现时,唯一的文件名是“video.mp4”,没有视频

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

NSData *videoData = [NSData dataWithContentsOfURL:url];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *tempPath = [documentsDirectory stringByAppendingFormat:@"/video.mp4"];
NSLog(@"writing");
BOOL success = [videoData writeToFile:tempPath atomically:NO];
if (success){

    NSError *error = nil;
    NSData *data = [NSData dataWithContentsOfFile:tempPath];
    NSLog(@"path: %@", tempPath);
    if (error) {
        NSLog(@"%@", [error localizedDescription]);
    }else{
        [controller addAttachmentData:data mimeType:@"video/mp4" fileName:@"video.mp4"];
        NSLog(@"Data has loaded successfully.");
    }
}

我认为唯一的尝试方法是将邮件格式化为HTML。否则,您将始终发送附件

NSString *messageBody = @" /*Some HTML format containing HTML5 video player*/";
[controller setMessageBody:messageBody isHTML:YES];

所以你需要为你的视频寻找合适的CSS和HTML标签。但别忘了用大多数电子邮件客户端测试它,因为您可能会看到不同的外观。

您确定它不成功吗?根据我的经验,这就是视频附件的所有
MFMailComposeViewController
显示。你有没有看过你收到的电子邮件,看看是否有附加MP4?@Linuxios你说得对,它确实发送了。你知道有没有办法在电子邮件中显示视频?我不确定用户是否会理解,如果电子邮件中只写了“video.mp4”,那么视频是附加的。