是否可以使用后台代理或任何其他方式检测播放曲目中的音频电平?
我想要实现的是听取音轨,获得一个浮动并根据正在播放的音频级别改变颜色。
你会如何接近?
答案 0 :(得分:0)
您需要检测录制声音的分贝水平。实际上,在WP7中(我找不到WP8,但是!)没有API直接获得分贝级别。但我可以使用麦克风来获取数据以模拟分贝。像这样的代码:
......
microphone.BufferReady += new EventHandler<EventArgs>(microphone_BufferReady);
........
void microphone_BufferReady(object sender, EventArgs e)
{
double sum = 0;
for (var i = 0; i < buffer.Length; i = i + 2)
{
double sample = BitConverter.ToInt16(buffer, i) / 32768.0;
sum += (sample * sample);
}
double rms = Math.Sqrt(sum / buffer.Length);
decibel = 92.8 + 20 * Math.Log10(rms);
}