我有一个麦克风对象来录制声音。如果我在同一个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)];
使用麦克风类有什么问题吗?它是否被清除或者从设备后退按钮按下后是什么?
提前致谢。如果对问题有任何疑问,请告诉我。
答案 0 :(得分:0)
如果您在页面上启动麦克风然后向后导航,该页面将被销毁,以及任何缓冲录制。当您下次导航到该页面时,将创建一个新的实例以及一个新的麦克风(和流/缓冲区)。
这是你的情景吗?
如果我是你,我会在应用程序级别创建麦克风,这样就不会受到应用程序页面之间导航的影响。