AVSpeechSynthesizer:如何在默认播放器视图中显示
AVSpeechSynthesizer: how to display in a default player view
我使用 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 的默认播放器视图中的信息(可能命名有误):
- 表示播放带有一些文字的章节
- 启用下一按钮播放下一章
我怎样才能做到这一点?
我真的不认为你想破解这个..但如果你真的这样做,我会:
- 监听远程命令(
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
,参见Apple Sample Project
- 在
MPNowPlayingInfoCenter
上设置您的属性:MPNowPlayingInfoCenter.default().nowPlayingInfo[MPMediaItemPropertyTitle] = "Title"
- 实现
AVSpeechSynthesizerDelegate
并尝试将委托函数映射到播放状态并使用 speechSynthesizer(_:willSpeakRangeOfSpeechString:utterance:)
(如果可能,idk)估计播放进度
- 您可能需要使用
AVSpeechSynthesizer
的 usesApplicationAudioSession
属性 才能更好地控制音频会话(设置类别等)
我使用 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 的默认播放器视图中的信息(可能命名有误):
- 表示播放带有一些文字的章节
- 启用下一按钮播放下一章
我怎样才能做到这一点?
我真的不认为你想破解这个..但如果你真的这样做,我会:
- 监听远程命令(
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
,参见Apple Sample Project - 在
MPNowPlayingInfoCenter
上设置您的属性:MPNowPlayingInfoCenter.default().nowPlayingInfo[MPMediaItemPropertyTitle] = "Title"
- 实现
AVSpeechSynthesizerDelegate
并尝试将委托函数映射到播放状态并使用speechSynthesizer(_:willSpeakRangeOfSpeechString:utterance:)
(如果可能,idk)估计播放进度 - 您可能需要使用
AVSpeechSynthesizer
的usesApplicationAudioSession
属性 才能更好地控制音频会话(设置类别等)