AVSpeechSynthesizer
当我的 iOS 应用程序处于后台模式时,我无法让 iOS 7工作。我已在应用程序支持的后台模式中添加了“应用程序播放音频”键,但我仍然无法让它工作。
我还研究了创建一个AVMutableCompositionTrack
带有AVSpeechSynthesizer
话语的 , 的可能性,然后以某种方式与能够在后台运行的玩家一起播放它 - 但没有运气。
AVSpeechSynthesizer
在后台使用有没有人比我运气好?
AVSpeechSynthesizer
当我的 iOS 应用程序处于后台模式时,我无法让 iOS 7工作。我已在应用程序支持的后台模式中添加了“应用程序播放音频”键,但我仍然无法让它工作。
我还研究了创建一个AVMutableCompositionTrack
带有AVSpeechSynthesizer
话语的 , 的可能性,然后以某种方式与能够在后台运行的玩家一起播放它 - 但没有运气。
AVSpeechSynthesizer
在后台使用有没有人比我运气好?
NSError *error = NULL;
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:&error];
if(error) {
// Do some error handling
}
[session setActive:YES error:&error];
if (error) {
// Do some error handling
}
这段代码在 Swift 5 中对我有用
do {
try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: AVAudioSession.CategoryOptions.mixWithOthers)
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print(error)
}
let utterance = AVSpeechUtterance(string: voiceOutdata)
let synth = AVSpeechSynthesizer()
synth.speak(utterance)
根据https://forums.developer.apple.com/thread/38917
当会话可混合时,AVAudioSessionCategoryOptionMixWithOthers 与播放类别一起添加,在允许播放音频之前,对应用程序“为什么”处于唤醒状态进行一些内部检查。