获取 windows phone 中麦克风的振幅
Posted
技术标签:
【中文标题】获取 windows phone 中麦克风的振幅【英文标题】:getting the amplitude of the microphone in windows phone 【发布时间】:2014-04-08 21:18:18 【问题描述】:我想获取 windows phone 中麦克风输入的实时幅度。实现这一目标的最简单有效的方法是什么?
【问题讨论】:
看这篇文章:***.com/questions/9361022/… 【参考方案1】:要获得振幅,您必须处理 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);
【讨论】:
感谢您的回复。它在“microphone.BufferReady += new EventHandler以上是关于获取 windows phone 中麦克风的振幅的主要内容,如果未能解决你的问题,请参考以下文章
无法在 windows phone 8 中播放使用麦克风录制的 MP3 文件