2011-03-03 4 views
0

소리를 녹음하기 위해 마이크 개체가 있습니다. 동일한 xaml 파일에 있다면 내 바이트 버퍼 배열을 내게 올바른 결과를 제공합니다.WP7에서 장치 뒤로 키를 누른 후 마이크 버퍼가 0이됩니다.

하지만 뒤로 키를 누른 다음 다시 같은 페이지를 방문하면 버퍼에 모든 배열 멤버가 포함됩니다. 마이크 클래스를 사용하여 어떤 문제가

// 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)]; 

있습니까 : 내가 다음 코드를 한 버튼 클릭 핸들러에서

this.microphone.GetData(buffer); 

: 생성자에서

, 나는 다음과 같은 코드가? 기기를 지운 후에 버튼이 눌려지면 무엇이 사라지나요?

미리 감사드립니다. 이 질문에 의심의 여지가 있으면 알려주십시오.

+0

사이를 탐색하는 페이지와 관련하여이 코드의 위치를 ​​표시 할 수 있습니까? –

답변

0

페이지에서 마이크를 시작한 다음 뒤로 탐색하면 해당 페이지가 버퍼링 된 모든 녹음과 함께 삭제됩니다. 다음에 해당 페이지로 이동하면 새 마이크 (및 스트림/버퍼)와 함께 새 인스턴스가 만들어집니다.

이 시나리오입니까?

나는 당신 이었기 때문에 응용 프로그램 수준에서 마이크를 만들었으므로 응용 프로그램의 페이지 간 탐색에 영향을받지 않을 것입니다.