2012-01-11 4 views
1

내 프로그램은 현재 wp7에서 MediaElement를 사용하여 .wav 파일을 재생합니다.Silverlight의 웨이브 파일 용 사운드 시각화 도구

매우 간단한 시각화 프로그램 (예 : 웨이브의 진폭을 나타내는 숫자)을 작성하고 싶습니다. 그러나 MediaElement에서 원시 미디어 정보를 얻는 방법에 대해서는 잘 모릅니다.

저는 Salus MediaKit (MP3에만 해당), Beat 탐지 (복잡한 알고리즘 포함) 및 WaveControl (실시간으로 표시되지 않음)으로 검색했습니다.

오디오 처리에 정통한 사람이 내가 취할 수있는 접근 방식을 제시 할 수 있습니까?

답변

2

미디어 요소에서 원시 오디오 데이터를 가져올 수 있다고 생각하지 마십시오. 계산을 수행하기 위해 오디오 파일에 대한 액세스 권한이 필요합니다. 그런 다음 MediaStreamSource 클래스의 GetSampleAsync를 사용하여 오디오 샘플을 MediaElement로 보냅니다. MSDN here에 대한 문서를 찾을 수 있습니다.

원시 미디어 데이터로 mp3 파일을 먼저 디코딩 한 다음 해당 작업을 수행하기 때문에 Saluse Media Kit를 참조로 사용할 수 있다고 생각하십시오. 이것을 참조하기 위해 RawMP3MediaStreamSource 클래스를 살펴볼 수 있습니다. WAV 파일은 압축되어 있지 않으므로 헤더 정보를 제거한 후 WAV 파일에서 진폭을 계산할 수 있어야합니다. 읽을 좋은 점은 uncompressed audio (PCM)이 저장되는 방법입니다.