Я хочу скачать и воспроизвести звук из Google Translate (Текст в речь).
Файл mp3 успешно загружен.Я пытался воспроизвести его с помощью AVAudioPlayer, но на симуляторе и моем реальном iPhone нет звука
Я использую XCode 10.2.1, Swift 5. Тест на симуляторе (XSMax) и iPhone XSMax
import UIKit
import AVFoundation
class TextToSpeechGoogleTranslate: AVAudioPlayer, AVAudioPlayerDelegate {
var player: AVAudioPlayer?
func speak() {
let fileURL = URL(string: "https://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=0&client=tw-ob&tl=vi&q=Hello" )!
let documentsUrl:URL = (FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first as URL?)!
let destinationFileUrl = documentsUrl.appendingPathComponent("voice.mp3")
let sessionConfig = URLSessionConfiguration.default
let session = URLSession(configuration: sessionConfig)
let request = URLRequest(url:fileURL)
let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in
if let tempLocalUrl = tempLocalUrl, error == nil {
if let statusCode = (response as? HTTPURLResponse)?.statusCode {
print("Successfully downloaded. Status code: \(statusCode)")
}
do {
try? FileManager.default.removeItem(at: destinationFileUrl)
try FileManager.default.copyItem(at: tempLocalUrl, to: destinationFileUrl)
print(destinationFileUrl)
do {
self.player = try AVAudioPlayer(contentsOf: destinationFileUrl)
self.player!.delegate = self
self.player!.prepareToPlay()
self.player!.volume = 1.0
self.player!.play()
}
catch let error as NSError {
print("Error: \(error.localizedDescription)")
}
catch {
print("AVAudioPlayer init failed")
}
} catch (let writeError) {
print("Error creating a file \(destinationFileUrl) : \(writeError)")
}
} else {
print("Error took place while downloading a file. Error description: %@", error?.localizedDescription as Any);
}
}
task.resume()
}
}
Вывод: успешно загружен.Код статуса: 200 файл: /// Пользователи / macbook / Библиотека / Разработчик / CoreSimulator / Устройства / F43F9B03-674C-4EE1-8CAD-01B5145868DE / данные / Контейнеры / Данные / Приложение / 6D1A3310-386D-4706-9F1E-DFF536B2A43F / Documents/voice.mp3
Я проиграл этот файл в Finder.Все в порядке.