2017-01-15 2 views
1

Я искал и не нашел много вопросов и ответов о отправке аудиофайлов через приложения iMessage. Я пытался и просто не знаю, как это сделать. Вот отрывок из моего кода:Отправьте звуковой файл через приложение iMessage в xcode (swift)

@IBAction func pressSend(_ sender: Any) { 
     let filePath = Bundle.main.path(forResource: "yaddadi", ofType: "m4a") 
     let fileURL = NSURL(string: filePath!) 

     if let conversation = activeConversation 
     { 
      conversation.insertAttachment(fileURL as! URL, withAlternateFilename: nil, completionHandler: nil) 
     } 
    } 

Когда я запустить приложение и нажать на кнопку, которая прилагается к этой функции вставляет крошечное изображение, которое появляется не было ничего, и я даже не могу отправить, что через сообщения , Пожалуйста помоги!

ответ

0

Вы почти у цели. Возможно, вам просто не хватает схемы URL. Вы видите эту ошибку в консоли?

CFURLCopyResourcePropertyForKey failed because it was passed an URL which has no scheme

Try:

let path = Bundle.main.path(forResource: "yaddadi", ofType: "m4a")! 
let url = URL(string: "file://\(path)")! // Note the addition of "file://" here. 
activeConversation?.insertAttachment(url, withAlternateFilename: nil, completionHandler: nil) 
+0

Когда я попробовал, что я получил сообщение об ошибке, которое говорит «неустранимая ошибка: неожиданно нашли ноль в то время как разворачивание необязательное значение 2017-01-16 10: 29: 08.647001 MessagesExtension [7847 : 3394193] фатальная ошибка: неожиданно найден nil при развертывании необязательного значения « – Austinn97

+0

Установите точку останова, чтобы определить, где находится значение« nil ». Я могу развернуть в моем примере, потому что я уверен, что «путь» и «url» не будут «nil» - возможно, вы не захотите этого делать. Так как вы также принудительно распаковываете 'filePath' в свой пример, я предполагаю, что значение' nil' равно 'fileURL'. – JWK

+0

Он указывает на объявление fileURL, в котором говорится о EXC_BAD_INSTRUCTION, но это не делалось, прежде чем я добавил «file: // \ (filePath)»)! и я знаю, что filePath верен, потому что у меня тот же самый путь, который используется в AVAudioPlayer, который работает правильно. – Austinn97

Смежные вопросы