0

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 的默认播放器视图中更新信息(可能命名错误):

在此处输入图像描述

  • 用一些文字表示正在播放章节
  • 启用下一个按钮以播放下一章

我怎样才能做到这一点?

4

1 回答 1

1

我真的不认为你想破解这个..但如果你真的这样做,我会:

  • 收听远程命令 ( UIApplication.sharedApplication().beginReceivingRemoteControlEvents(),请参阅Apple 示例项目
  • 设置您的属性MPNowPlayingInfoCenterMPNowPlayingInfoCenter.default().nowPlayingInfo[MPMediaItemPropertyTitle] = "Title"
  • 实现AVSpeechSynthesizerDelegate并尝试将委托函数映射到播放状态并使用speechSynthesizer(_:willSpeakRangeOfSpeechString:utterance:)(idk 如果可能)估计播放进度
  • 您可能必须使用 的usesApplicationAudioSession属性AVSpeechSynthesizer才能更好地控制音频会话(设置类别等)
于 2020-11-09T14:22:04.220 回答