致@alexbw和朋友们:首先感谢这段很棒的代码。我在字节数组中有pcm数据(signed 16位大端),我想用Novocaine AudioManager setOutputBlock来播放它。我明白我首先需要转换为浮点数组。或者有更快的方法吗?干杯菲利普
晚了,但对于其他正在阅读的人:
你可以在这里使用加速框架:
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"现在有了等价的float