【问题标题】:Display what AVSpeechSynthesizer is showing as subtitles with Swift使用 Swift 显示 AVSpeechSynthesizer 显示为字幕的内容
【发布时间】:2019-05-27 15:28:26
【问题描述】:

我有一个带有引号的数组,并且正在使用一个按钮来开始从数组中播放随机引号。

我想知道,如何将选定的随机引用也显示在 ViewController 中,以便人们可以阅读语音合成器正在阅读的内容?

【问题讨论】:

  • 随机生成的字符串设置为标签
  • 为视图添加标签并设置label.text = randomQuote
  • @vacawama 好的,我可以通过设置 let randomQuote = nTeslaQuoteArray[nTSelection] 来做到这一点。现在我只需要调整标签的大小,使其始终适合内容:)
  • @vacawama 有没有办法使用 Subtitles.sizeToFit() 以便将标签分成 3 行或更多行,而不仅仅是“一行直到无穷大”?

标签: swift avspeechsynthesizer


【解决方案1】:

如何在 ViewController 中也显示选定的随机引用,以便人们可以阅读语音合成器正在阅读的内容?

突出发声词的最佳方法是使用 AVSpeechSynthesizerDelegate 协议speechSynthesizer:willSpeakRangeOfSpeechString:utterance: 方法。

不要在此处复制和粘贴代码 sn-p,而是看一下 complete and useful example(ObjC 和 Swift),它通过语音合成以粗体显示发声的单词。

...有什么方法可以使用 Subtitles.sizeToFit() 以便将标签分成 3 行或更多行,而不仅仅是“一行直到无穷大”?

Xcode Interface Builder - Attributes Inspector 中,将标签属性Lines 的值设置为0,并调整您的约束以获得多行表示。

【讨论】:

    【解决方案2】:

    为您的视图添加标签并为其设置引用文本

    quoteLabel.text = randomQuote
    

    要在多行上显示您的标签,请添加:

    label.numberOfLines = 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多