How do I send audio file send via iMessage ios 8

别来无恙 提交于 2019-12-22 07:15:08

问题


As we know with the launch of ios 8 the apple allow custom Keyboard extension.In keyboard extension we can send images,gif etc in SMS by using Copy image to clipboard.code

 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
 NSData *data= UIImagePNGRepresentation([UIImage imageNamed:@"so_close_disappointed_meme.png"]);
 [pasteboard setData:data forPasteboardType:@"public.png"];

Now i am trying to send audio file in iMessage like this feature reference.don't know apple will allow us to send audio in iMessage?.so for i tried above approach but it did not show any paste option for audio in SMS window.

 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
 NSString *path = [[NSBundle mainBundle] pathForResource:@"tune"ofType:@"mp3"];
 NSURL *url = [[NSURL alloc] initWithString:path];
 NSData *data = [NSData dataWithContentsOfURL:url];
 [pasteboard setData:data forPasteboardType:@"public.mp3"];

Any one can suggest me how do we send audio file by using custom keyboard extension.is it possible?


回答1:


I believe you could directly attach the file to MFMessageComposeViewController. Here is the documentation link of how it could be done.

Following would be the steps to do so.

  1. Check if file can be send using file UTI using + (BOOL)isSupportedAttachmentUTI:(NSString *)uti
  2. Find File UTI. i.e. path for the file
  3. Attach file to MFMessageComposeViewController using - (BOOL)addAttachmentData:(NSData *)attachmentData typeIdentifier:(NSString *)uti filename:(NSString *)filename

As the description for the method says

This method is especially useful when the attachment you want to add to a message does not have a file system representation. This can be the case, for example, for programmatically composed audiovisual content.

Note : You will have to convert audio file to NSData




回答2:


The MFMessageComposeViewController isn't the solution in this scenario. A custom keyboard extension shouldn't present a new view controller, rather just paste the audio file to the pasteboard. Heres some swift code that worked for me

let path = NSBundle.mainBundle().pathForResource("audio", ofType:"wav")
let fileURL = NSURL(fileURLWithPath: path!)
let data = NSData(contentsOfURL: fileURL)
let wavUTI = "com.microsoft.waveform-audio"
UIPasteboard.generalPasteboard().setData(data!, forPasteboardType: wavUTI)


来源:https://stackoverflow.com/questions/28272426/how-do-i-send-audio-file-send-via-imessage-ios-8

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!