如何解决重用AVAudioPlayer以获得不同的声音
我有一个AVAudioPlayer实例,它将播放几种声音。有没有一种方法可以为AVAudioPlayer实例提供新的声音,还是我必须使用initWithData:创建新的实例?解决方法
重用对象通常是个坏主意,通常尝试使对象尽可能短命。这减少了代码可能的状态数量,并使推理更加容易。 (“这个值是从哪里来的?也许是以前实例使用后的剩余值?”糟糕。)只有在遇到可衡量的问题时才打破此规则。
为了进一步理解这一点,您可以浏览标记为“不可变”的问题。
, 没有API可以将新文件传递到现有的AVAudioPlayer实例。但是,创建AVAudioPlayer并不昂贵,因此只要您在实例完成后释放实例,就不必担心性能。
如果您有一组固定的声音可以相互播放,或者有可能重复播放,则可以为每种声音创建一个AVAudioPlayer实例,并在适当的实例上调用
play
以重复使用这些实例。
如果一次只播放一种声音,并且您要生成新的声音(例如,基于用户输入的文本转语音),则通常只有一个播放器作为属性。当播放新声音时,我叫ѭ1,释放旧播放器,并用新声音文件实例化一个新播放器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。