2013-01-20 186 views
2

我是一名Unity开发人员,需要在Obj-C中以本地方式帮助同事。在Unity它没什么大不了:iOS音频:剪切和拼接音频?

1)样本被存储在存储器中作为浮体的列表[]

2)一个辅助函数返回浮动[] n的尺寸的任何给定的样品,在任何给定的偏移如果需要的话

3)的另一种辅助函数变淡中的数据)的音频剪辑对象与合适的尺寸,以容纳所有切割样品创建,然后填充在适当的偏移。

5)AudioClip被分配给播放器组件(AudioSource)。

6)AudioSource.Play(ulong offsetInSamples),在未来的准确时间播放。循环也只是设置AudioSource对象的循环参数的问题。

我非常感谢,如果有人能指出我正确的课程,在iOS设备的Obj-C中实现类似的结果。我敢肯定,很多iOS音频新手也会有所不同。提前谢谢了!

Gregzo

回答

3

在IOS提供相关的音频API的一个很好的概述是here

最高级别的框架,是有道理的,拼凑的音频剪辑,设置它们的音量,并且在回放观看您情况可能是AVFoundation

这将涉及创建AVAsset S,将它们添加到AVPlayerItem S,有可能将它们放入AVMutableComposition s到多个项目合并到一起,并调整它们的体积(audioMix),和他们玩他们回来AVPlayer

AVFoundation适用于AVAsset,用于在相关格式和低级别字节之间进行转换,您需要查看AudioToolbox(我目前无法发布两个以上的链接)。

对于更简单的API,控制更少的应用程序请参阅AVAudioPlayer。如果您需要更好的控制(例如:游戏 - 实时/低延迟),则可能需要使用OpenAL进行播放。

+0

非常感谢您的详细回复。我看了一下AVAudioPlayer,它似乎能够提供足够的控制来实现我的同事正在尝试的操作:它可以使用NSData而不是音频文件进行初始化。所以知道,我需要知道的是如何在NSData对象中转换wav的数据。有没有现成的方法来避免手动解析文件,删除标题数据并仅保留音频数据?非常感谢,Gregzo – Gregzo

+0

哈,似乎AudioFileReadPackets应该做的伎俩。 – Gregzo