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

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

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

你会怎么处理?

【问题讨论】:

    标签: audio windows-phone-8


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      相关资源
      最近更新 更多