我正在开发一个XNA脚本,我希望每隔几帧从麦克风中读取数据并估算其音高。我几乎完全根据此页面(http://msdn.microsoft.com/en-us/library/ff827802.aspx)接受了输入。
现在我有一个缓冲区满字节。它代表什么?我重置所有内容并每隔10帧查看我的缓冲区,因此它似乎是一个巨大的数组,在不同的时间点有9个1764字节的实例(整个事件大15876字节)。我假设它是声压的时域,因为我找不到有关麦克风输入格式的任何信息。有谁知道这是如何工作的?我有一个朋友已经启动并运行了FFT,但我们正试图在我们尝试插入数据之前尽可能多地了解我正在收集的数据。
答案 0 :(得分:0)
样品采用Little-Endian 16位线性PCM。将每对字节转换为带符号的短消息
short sample = (short)(buffer[i] | buffer[i+1] << 8);