问题描述
我使用AVSpeechSynthesizer
通过音频播放教科书。
private lazy var synthesizer: AVSpeechSynthesizer = {
let synthesizer = AVSpeechSynthesizer()
synthesizer.delegate = self
return synthesizer
}()
let utterance = AVSpeechUtterance(string: text)
utterance.voice = AVSpeechSynthesisVoice(
language: languageIdentifier(from: language)
)
synthesizer.speak(utterance)
我想在iPhone的默认播放器视图中更新信息(可能是命名错误?):
我该怎么做?
解决方法
我真的不认为您希望通过这种方式来破解自己的方法。但是,如果您真的这样做,我会:
- 听远程命令(
this.navigationArray = this.navigationArray.map(({ childNodes,relativeUri }) => ({ childNodes: child,href: relativeUri }))
,请参阅Apple Sample Project - 在
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
上设置属性:MPNowPlayingInfoCenter
- 实施
MPNowPlayingInfoCenter.default().nowPlayingInfo[MPMediaItemPropertyTitle] = "Title"
,并尝试将委托函数映射到播放状态,并使用AVSpeechSynthesizerDelegate
(如果可能,请输入idk)估算播放进度 - 您可能必须使用
speechSynthesizer(_:willSpeakRangeOfSpeechString:utterance:)
的{{1}}属性,才能更好地控制音频会话(设置类别等)