Windows phone 7 在windows phone中获取麦克风的振幅

Windows phone 7 在windows phone中获取麦克风的振幅,windows-phone-7,audio,windows-phone-8,Windows Phone 7,Audio,Windows Phone 8,我想在windows phone中获取麦克风输入的实时振幅。实现这一点最简单有效的方法是什么?要获得振幅,您必须处理麦克风类的BufferReady事件: 设置代码 Microphone microphone = Microphone.Default; microphone.BufferReady += new EventHandler<EventArgs>(microphone_BufferReady); microphone.BufferDuration = TimeSpan.

我想在windows phone中获取麦克风输入的实时振幅。实现这一点最简单有效的方法是什么?

要获得振幅,您必须处理麦克风类的BufferReady事件:

设置代码

Microphone microphone = Microphone.Default;
microphone.BufferReady += new EventHandler<EventArgs>(microphone_BufferReady);
microphone.BufferDuration = TimeSpan.FromMilliseconds(1000);

byte[] buffer;
buffer = new byte[microphone.GetSampleSizeInBytes(microphone.BufferDuration)];

microphone.Start();
麦克风麦克风=麦克风。默认值;
micromic.BufferReady+=新的事件处理程序(micromic_BufferReady);
Mirror.BufferDuration=TimeSpan.From毫秒(1000);
字节[]缓冲区;
buffer=新字节[microsic.GetSampleSizeInBytes(microsic.BufferDuration)];
麦克风。开始();
事件处理程序块

void microphone_BufferReady(object sender, EventArgs e)
{

    microphone.GetData(buffer);


    for(int i = 0; i< buffer.Length; i+=2)
    {
        //The value of sample is the amplitude of the signal
        short sample = BitConverter.ToInt16(new byte[2] { buffer[i], buffer[i + 1] }, 0);
    }
}
void麦克风\u BufferReady(对象发送方,事件参数e)
{
麦克风。获取数据(缓冲区);
对于(int i=0;i
看看这篇文章:谢谢你的回复。它在“microscope.BufferReady+=neweventhandler(microscop_BufferReady);”处抛出一个“System.NullReferenceException”。你能修好吗?我能修好。只需在WMAppManifest.xml中启用ID_CAP_麦克风。