我正在想办法 -
每次使用 AVAudioPlayer 时,我都需要初始化一个新的 AVAudioPlayer 对象。
我在 View 上有 10 个 Sentence 对象,我希望向每个 Sentence 对象添加一个“PlaySentence”方法,以便当用户点击 Sentence 时应用程序将播放声音文件。
我在许多 View 上都需要这种行为,所以我想将该方法添加到对象类中,这样我就可以简单地调用 -
[Sentence playSound];
由于每次我想使用 AVAudioPlayer 时都会以任何方式初始化它,所以我不明白为什么这应该是更昂贵的操作。
我说得对吗/这是满足这种需求的好方法吗?为什么?
谢谢
沙尼
最佳答案
所以,如果我理解正确的话,您希望您的 Sentence
对象有一个 playSound
方法,该方法设置 AVAudioPlayer
并播放声音。
你绝对可以这样做,但要注意,如果你有很多 Sentence
对象,那么你最终将创建很多 AVAudioPlayer
对象。但是您可以在文件播放完毕后释放它来阻止高水位线过高。
您可以执行此操作的另一种方法是在 Sentence
上使用一个方法来返回要播放的文件的 URL,然后在您的 View 中只有一个 AVAudioPlayer
实例您想要播放声音的 Controller ,并每次都将其设置为正确的文件。这是我个人建议的做法。
关于ios - AVAudioPlayer初始化和内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9818143/