致@alexbw和朋友们, 首先感谢这段伟大的代码。 我在一个字节数组中有pcm数据(带符号16位大端),我想用Novocaine AudioManager setOutputBlock播放它。 我明白我首先需要转换为float数组。 或者有更快的方法吗? 干杯 菲利普
答案 0 :(得分:0)
迟到了,但对于其他人来说:
您可以在此处使用Accelerate框架:
float *float_data = malloc(sizeof(float) * numFrames);
vDSP_vflt16(my_s16_data, 1, float_data, 1, numFrames);
//Scaling [-32768, 32768] to [-1, 1]
float scale = 1.0 / (float)INT16_MAX;
vDSP_vsmul(float_data, 1, &scale, float_data, 1, numFrames);
“float_data”现在具有等效的浮点数。