从Windows手机上的曲目中检测音频电平

时间:2013-09-16 20:25:52

标签: audio windows-phone-8

是否可以使用后台代理或任何其他方式检测播放曲目中的音频电平?

我想要实现的是听取音轨,获得一个浮动并根据正在播放的音频级别改变颜色。

你会如何接近?

1 个答案:

答案 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);


}

这是来源http://social.msdn.microsoft.com/Forums/windowsapps/en-US/f04e0629-2609-4542-a141-46166f4cbdeb/how-to-get-the-decibel-with-c