У меня ниже простое приложение для iOS с одним экраном: < /p>
import SwiftUI
import AVFoundation
struct ContentView: View {
let synthesizer = AVSpeechSynthesizer()
let timer = Timer.publish(every: 10, on: .main, in: .common).autoconnect()
var body: some View {
Text("TTS App")
.onReceive(timer) { _ in
speak()
}
.onAppear(perform: setupAudioSession)
}
func setupAudioSession() {
do {
// Configure the audio session for navigation-like behavior
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [.duckOthers, .interruptSpokenAudioAndMixWithOthers])
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print("Failed to set up audio session: \(error)")
}
}
func speak() {
print("Playing utterance directly...")
let utterance = AVSpeechUtterance(string: "test")
utterance.voice = AVSpeechSynthesisVoice(language: "en-US")
synthesizer.speak(utterance)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
< /code>
Я уверен, что у меня есть правильная настройка разрешений (фоновый аудио). < /p>
Когда начинается приложение, я слышу высказывание «Тест». Но если я помесчу приложение на фон, несмотря на то, что строка журнала продолжает печатать «Прямое высказывание напрямую ...», нет фактической воспроизведения звука.
Кто -нибудь знает, почему это происходит?
Подробнее здесь: https://stackoverflow.com/questions/797 ... sion-setup