从 Windows Phone 上的轨道检测音频电平

Posted

技术标签:

【中文标题】从 Windows Phone 上的轨道检测音频电平【英文标题】:Detect audio levels from track on windows phone 【发布时间】:2013-09-16 20:25:51 【问题描述】:

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

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

你会怎么处理?

【问题讨论】:

【参考方案1】:

您需要检测录制的声音的分贝级别。实际上,在 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

【讨论】:

以上是关于从 Windows Phone 上的轨道检测音频电平的主要内容,如果未能解决你的问题,请参考以下文章

具有多个音频流的 Windows Phone 8 MediaStreamSource

C# windows phone - 合并音频和视频文件

使用 MediaElement 在 Windows Phone 8 上流式传输音频

python-sounddevice 不会检测音频接口上的所有输入通道(windows)

如何使用 Windows Phone 的麦克风在网页中录制音频?

Windows Phone 8.1 上的 WiFi 直连