每当使用 AVSpeechSynthesizer 读取文本时,仪器都会报告内存泄漏

Posted

技术标签:

【中文标题】每当使用 AVSpeechSynthesizer 读取文本时,仪器都会报告内存泄漏【英文标题】:Instruments reporting memory leak whenever AVSpeechSynthesizer is used to read text 【发布时间】:2013-11-15 00:51:15 【问题描述】:

每次我使用 AVSpeechSynthesizer 朗读文本时,仪器都会报告 AXSpeechImplementation 库中的内存泄漏。这是我用来拨打电话的代码:

AVSpeechUtterance *speak = [AVSpeechUtterance speechUtteranceWithString:text];
speak.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"];
speak.rate = AVSpeechUtteranceMaximumSpeechRate * .2;
[m_speechSynth speakUtterance:speak];

这是 Instruments 屏幕截图的链接 http://imageshack.com/a/img690/7993/b9w5.png

【问题讨论】:

“是否有其他人泄漏内存”在这里不是一个具体的、可回答的问题。 (可能的答案是“是的,其他人是”、“不,没有人是”或“某处,有人可能是”,这些对您或本网站的任何未来读者都没有用处。)请阅读@ 987654322@,然后编辑您的问题,使其更清楚、更具体地说明您要求我们帮助您解决的问题。 恐怕您还没有提出具体的问题。 :) 更好,但仍然有一个问题。访问我发布的链接。 收到此错误时同上。有人提交错误报告吗? 【参考方案1】:

对于它的价值 - 是的,我在语音合成器的每个话语中看到完全相同的 16 字节泄漏。所以要么是 Apple 的代码泄漏,要么我们都在某个地方犯了同样的错误!

阿里

【讨论】:

感谢您的回复! 我同意这一点。我也看到了同样的 16 字节内存泄漏。 您要发布 AVSpeechUtterance 吗?你什么时候可以这样做……在车站?【参考方案2】:

我通过将 AVSpeechSynthesizer 声明为全局变量来解决这个问题

static let synth = AVSpeechSynthesizer()

【讨论】:

以上是关于每当使用 AVSpeechSynthesizer 读取文本时,仪器都会报告内存泄漏的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 avspeechsynthesizer 保存音频?

AVSpeechSynthesizer 和 AirPlay — 音频设备休眠?

在后台使用 AVSpeechSynthesizer [关闭]

swift 使用AVSpeechSynthesizer读取文本

音频文件的 AVSpeechSynthesizer 话语

如何通过呼叫接收扬声器播放 AVSpeechSynthesizer?