我的iPhone应用程序中有一个音频文件,我将其转换为NSData对象。理想情况下,我想从音频文件中获取一系列双打。有没有办法将NSData转换为双精度数组?
以下是行NSLog(@"%@\n", data)
的当前输出,其中data是音频文件的NSData对象:
<0000001c 66747970 6d703432 00000001 6d703431 6d703432 69736f6d 00000008 77696465 004d956e 6d646174 21000340 681c210c 53ed990c 1f33e94d ab588b95 55a61078 08799c67 f1f706cc 595b4eb6 08cfb807 ea0e3c40 03c13303 e674e05a...
答案 0 :(得分:2)
-bytes
方法返回NSData的原始字节。然后,您可以将其强制转换为指向double的指针(假设正确的字节顺序)。
const double* array_of_doubles = (const double*)[data bytes];
NSUInteger size_of_array = [data length] / sizeof(double);
编辑:数据是MP4文件。您无法直接将MP4转换为有意义的double
数组。我不知道你想做什么,但也许AVAssetReader会有所帮助。