0

我有一个麦克风对象来录制声音。如果我在同一个 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)];

使用麦克风类有什么问题吗?它会被清除还是在按下设备后退按钮后会发生什么?

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

4

1 回答 1

0

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

这是你的场景吗?

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

于 2011-03-03T15:00:31.540 回答