windows-phone-7 - 获取Windows Phone中麦克风的幅度

标签 windows-phone-7 audio windows-phone-8

我想获取Windows Phone中麦克风输入的实时幅度。最简单有效的方法是什么?

最佳答案

要获得振幅,您将必须处理Microphone类的BufferReady事件:

http://msdn.microsoft.com/en-us/library/windowsphone/develop/gg442302(v=vs.105).aspx

设定码

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();

事件处理程序块
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);
    }
}

关于windows-phone-7 - 获取Windows Phone中麦克风的幅度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22948388/

相关文章:

c# - andcontinue() - 作为异步操作执行的方法

azure - 在 Windows 8 和 Windows Phone 8 中使用相同的 Azure MobileService

c# - 在 Windows Phone 和 Skydrive 之间同步文件

c# - MVVM 使用 INotifyPropertyChanged Model 不通知 ViewModel

swift - 为什么声音不播放?

angularjs - 在 Node js 中连接两个音频文件

android - Android Studio 示例代码中 setAudioSource 失败

c# - 在 WP8 的 TextBox 控件中打字更快

c# - Windows Phone 7 - 验证推送通知的步骤

c# - 限制用户只能访问一行