在WP7中按下设备后退键后,麦克风缓冲区变为0

时间:2011-03-03 13:29:31

标签: windows-phone-7 button microphone back

我有一个麦克风对象来录制声音。如果我在同一个xaml文件上,我的字节缓冲区数组给出了正确的结果。

但是一旦按下后退键并再次进入同一页面,缓冲区在每个阵列成员中都包含0。

在构造函数中,我有以下代码:

this.microphone.GetData(buffer);

在按钮单击处理程序中,我有以下代码:

// Stop previously running microphone
if (this.microphone.State == MicrophoneState.Started)
{
    this.microphone.Stop();
}

// Clear previous content of microphone

this.microphone.BufferDuration = TimeSpan.FromMilliseconds(1000);

this.microphone.Start();

// Store recorded audio
 this.buffer = new byte[this.microphone.GetSampleSizeInBytes(this.microphone.BufferDuration)];

使用麦克风类有什么问题吗?它是否被清除或者从设备后退按钮按下后是什么?

提前致谢。如果对问题有任何疑问,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果您在页面上启动麦克风然后向后导航,该页面将被销毁,以及任何缓冲录制。当您下次导航到该页面时,将创建一个新的实例以及一个新的麦克风(和流/缓冲区)。

这是你的情景吗?

如果我是你,我会在应用程序级别创建麦克风,这样就不会受到应用程序页面之间导航的影响。