Как отправить аудиофайл через iMessage ios 8

Как мы знаем, с запуском iOS 8 Apple позволяет настраивать расширение клавиатуры. В расширении клавиатуры мы можем отправлять изображения, gif и т. Д. В SMS, используя Копировать изображение в буфер обмена.

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

Теперь я пытаюсь отправить аудиофайл в iMessage, как эта функция ссылка.don не знаю, Apple позволит нам отправлять аудио в iMessage? Поэтому я попробовал вышеописанный подход, но он не показал никаких вариантов вставки для аудио в окне SMS.

 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"];

Кто-нибудь может подсказать мне, как отправить аудиофайл с помощью пользовательского расширения клавиатуры. Возможно ли это?


person jamil    schedule 02.02.2015    source источник
comment
Я никогда не знал, что это возможно на устройствах iOS, но это звучит действительно круто!   -  person PMARINA    schedule 11.02.2015


Ответы (2)


Я думаю, вы могли бы напрямую прикрепить файл к MFMessageComposeViewController. Вот ссылка на документацию о том, как это можно сделать.

Ниже приведены шаги для этого.

  1. Проверьте, можно ли отправить файл, используя файл UTI, используя + (BOOL)isSupportedAttachmentUTI:(NSString *)uti
  2. Найдите файл UTI. то есть путь к файлу
  3. Прикрепить файл к MFMessageComposeViewController с помощью - (BOOL)addAttachmentData:(NSData *)attachmentData typeIdentifier:(NSString *)uti filename:(NSString *)filename

Как говорится в описании метода

Этот метод особенно полезен, когда вложение, которое вы хотите добавить к сообщению, не имеет представления файловой системы. Это может иметь место, например, для программно составленного аудиовизуального контента.

Примечание. Вам нужно будет преобразовать аудиофайл в NSData.

person Ganesh Somani    schedule 05.02.2015
comment
Я попробовал описанный выше подход для отправки аудиофайла напрямую через SMS, но все еще не достиг желаемого результата, но он мне очень помог, и я надеюсь, что после небольшого исследования я получу желаемый результат. - person jamil; 11.02.2015
comment
Просто убедитесь, что iMessage включен и связан с AppleID. Даже я мог бы попытаться создать пример, если мне позволит время :). Удачи - person Ganesh Somani; 11.02.2015

MFMessageComposeViewController не является решением в этом сценарии. Пользовательское расширение клавиатуры не должно представлять новый контроллер представления, а просто вставлять аудиофайл в монтажный стол. Вот какой-то быстрый код, который сработал для меня

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)
person Peter Argany    schedule 07.07.2015