Xcode:多个音频文件,单个按钮

Posted

技术标签:

【中文标题】Xcode:多个音频文件,单个按钮【英文标题】:Xcode: Multiple Audio Files, Single Button 【发布时间】:2011-05-12 04:01:40 【问题描述】:

在 Xcode 3.2.5 中,我想从单个 UIButton 依次播放多个音频文件 (50+)。我尝试了几个代码,但它们泄漏了内存。有什么建议么?我还在学习,所以请包括标题和实施文件代码。提前致谢。

【问题讨论】:

【参考方案1】:

使用音频队列服务 (AudioToolbox/AudioQueue.h) 中的接口。为您要播放的每个声音创建一个音频队列对象。然后使用 AudioQueueEnqueueBufferWithParameters 函数指定每个音频队列中第一个音频缓冲区的同时开始时间。

以下限制适用于 iPhone OS 中的同步声音,具体取决于音频数据格式:

AAC、MP3 和 ALAC(Apple 无损)音频:您可以同时播放多种 AAC、MP3 和 ALAC 格式的声音;播放这些格式的多种声音将需要 CPU 资源进行解码。 线性 PCM 和 IMA/ADPCM(IMA4 音频):您可以同时播放多个线性 PCM 或 IMA4 格式的声音,而无需担心 CPU 资源问题。 取自play multiple sounds simultaneously

【讨论】:

谢谢,但这不是我的想法。我想通过按一个按钮来播放一系列声音。【参考方案2】:

这只是概念性的,但是(a)以正确的顺序创建一个要播放的声音名称数组(这可以在运行时),然后(b)编写一个函数,其中每个 soundHandler 类型的对象检查它在数组中的位置;如果不是最后一个,它会构造一个 soundPlayer,加载声音,播放,然后调用数组中的下一个 soundHandler。 (如果它是最后一个,它只是构造/加载/播放,并且可能会通知父级它已经完成。)每个 soundHandler(我只是在编造它,你必须编写它)然后可以在完成时自行释放。

如果您遇到延迟/加载问题,您始终可以让每个 soundHandler 调用数组中的 n+2,当然然后检查它是否是倒数第二个而不是末尾。

这就是你的想法吗?

【讨论】:

以上是关于Xcode:多个音频文件,单个按钮的主要内容,如果未能解决你的问题,请参考以下文章

音频完成后更改按钮 Xcode

如何将情节提要中的多个按钮连接到单个动作?

如何在 Xcode 中制作关于音频的按钮?

iOS按钮没有在按钮点击时播放音频文件

如何在 Xcode11 中的 Swift 中随机播放数组中的音频文件?

使用单个按钮 Xcode 或 swift 切换视图控制器的背景颜色