xcode,objective c,将音频(.WAV,PCM编码)文件的内容读入C整数数组

时间:2013-05-28 09:23:26

标签: objective-c xcode arrays wav lame

我正在开发一个捕获录音的应用,并将其转换为mp3

我正在使用C中的 LAME开源库转换为mp3。它有一个函数,它需要整个整数流表示 PCM编码 .wav文件为integer array

这是我有关iphone开发的第一个项目,我无法弄清楚如何阅读 wav 文件的内容(除了stream of integers之外什么都不应该进入C style array

请帮忙。

Neerav

1 个答案:

答案 0 :(得分:2)

在Objective C中,您可以使用以下内容轻松地将文件读入NSData对象:

NSData *data = [NSData datawithContentsOFFile:filename];

然后,您可以获取该对象中的字节数,并分配匹配大小的C样式整数数组,如下所示:

NSUInteger length = [data length];
int *cdata = (int*)malloc(length);

并将NSData对象中的字节复制到C数组中,如下所示:

[data getBytes:(void*)cdata length:length];

完成后,不要忘记释放C数组中的内存。

free(cdata);