我正在创建一个使用iMessage和MMS的应用程序。
[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) {
if (imageDataSampleBuffer) {
问题是,在拍完照片然后点击发送按钮后,图像会随机变成问号。
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
以上代码是我们使用的第一个代码:
[self sendSMSmessage:myMessage image:imageData];
接下来,在sendSMSmessage方法中,调用了以下代码:
MFMessageComposeViewController *myText = [[MFMessageComposeViewController alloc] init];
[myText setMessageComposeDelegate:self];
[myText setBody:myMessage];
[myText addAttachmentData:image typeIdentifier:@"image/jpeg" filename:@"image.jpeg"];
然后,我呈现MFMessageComposeViewController myText
[self presentViewController:myText animated:YES completion:nil];
然后,我点击发送...它已成功发送给应用程序,我可以在MFMessageComposeViewController上看到图片。但是当我试着看iMessage时,我尝试发送的一些图片很好。但有些人不是。一些显示问号。图像是否在此过程中被破坏或者是什么?我尝试使用以下方法压缩图像:
CGFloat compressionQuality = 0.3;
NSData *imageData = [NSData dataWithData:(UIImageJPEGRepresentation
([UIImage imageWithData:[AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer]]
, compressionQuality))];
但仍然执行相同的操作。在10次尝试中,我得到了4张失败的图像。它可能是iPhone或我的应用程序本身的问题吗?谢谢!
答案 0 :(得分:0)
我不知道是否有人会遇到这种情况,但我采取的措施是:
将imageData声明为强引用:
__strong NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
然后我将myText作曲家的typeIdentifier更改为@“public.jpeg”而不是@“image / jpeg”
[myText addAttachmentData:image typeIdentifier:@"public.jpeg" filename:@"image.jpeg"];