Android音频录制,应用快速傅立叶变换
目前,更准确地说,我正在使用它的方法重载录制音频,该方法使用短缓冲区(由于最小API限制,无法使用Android音频录制,应用快速傅立叶变换,android,audio,Android,Audio,目前,更准确地说,我正在使用它的方法重载录制音频,该方法使用短缓冲区(由于最小API限制,无法使用float[]one) 我想应用于录制期间获得的数据。首先,我使用这种转换将收到的short[]转换为float[]: public static float[] convertShortToFloat(short[] array) { float[] data = new float[array.length]; for (int i = 0; i < array.lengt
float[]
one)
我想应用于录制期间获得的数据。首先,我使用这种转换将收到的short[]
转换为float[]
:
public static float[] convertShortToFloat(short[] array) {
float[] data = new float[array.length];
for (int i = 0; i < array.length; i++) {
data[i] = 1.f * array[i] / Short.MAX_VALUE;
}
return data;
}
public static float[]convertShortToFloat(short[]数组){
float[]数据=新的float[array.length];
for(int i=0;i
然后,我只需将结果float[]
提供给FFT
实例,并使用方法获得结果(我拥有的这个类的实现实际上有点不同,但我相信它的工作原理与此几乎相同)
据我所知,现在我应该将转换后获得的数据转换回short[]
格式(转换回原始信号域),然后提交给muxer。我创建了一个short[]
-float[]
数组转换,只是为了与前面显示的相反,但我播放录音时会产生噪音
实施有什么问题