
声音
|
137
不要用同一个
AVSpeechUtterance
调用
speakUtterance
方法两次,这会导
致一个错误,
App
会立即崩溃。
在合成器开始朗诵后,我们可以让它暂停。暂停可以是立即暂停,也可以是在下一
个单词暂停:
//
立即暂停发声
self.speechSynthesizer.pauseSpeaking (at: AVSpeechBoundary.Immediate)
//
在当前单词念完之后暂停
self.speechSynthesizer.pauseSpeaking (at: AVSpeechBoundary.Word)
暂停后随时可以继续朗诵:
self.speechSynthesizer.continueSpeaking()
朗诵完毕,我们可以用
stopSpeaking(at:)
方法清空
AVSpeechSynthesizer
并添
加新的
AVSpeechUtterance
。这个方法和
pauseSpeaking(at:)
差不多,只不过
stopSpeaking(at:)
会让
AVSpeechSynthesizer
把所有说过的
AVSpeechUtterance
清除。
4.6
获知音乐程序当前播放曲目
问题
如何知道系统音乐程序正在播放哪首歌曲?
解决方案
这个问题需要用到
Media Player
框架。首先在你的代码中引入
MediaPlayer
模块。
首先从系统获得一个
MPMusicPlayerController
对象,这个对象包含了内置音乐库
的信息。接着,获得当前正在播放的