2011-03-03 48 views
0

我有一个麦克风对象来录制声音。我的字节缓冲区阵列给了我正确的结果,如果我在同一个xaml文件。WP7中设备后退按键后,麦克风缓冲区变为0

但是,一旦我按下后退键并再次来到相同的页面,缓冲区在每个数组成员中都包含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)]; 

有没有使用麦克风类的任何问题?它是否被清除或从设备返回按钮按下后会发生什么?

在此先感谢。请问我是否有疑问。

+0

你可以显示这段代码与你正在浏览的页面相关的位置吗? – 2011-03-03 14:05:35

回答

0

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

这是你的场景吗?

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