사용자 지정 코덱을 사용하여 녹음 된 WAV 파일이 있습니다. 코덱이 내 컴퓨터에 설치되어 있고 Windows Media Player를 사용하여 내 컴퓨터에서 WAV 파일이 정상적으로 재생됩니다. NAudio 루틴을 사용하여 일부 C# 코드를 통해 WAV 파일을 재생하려고합니다. 사용자 정의 형식의 값은 이상하게 보였지만 WAV 파일 헤더를 분석하여 고심하게 검사했습니다.NAudio를 사용하여 사용자 지정 코덱으로 WAV 재생
WaveFormat wfOKI = WaveFormat.CreateCustomFormat(WaveFormatEncoding.DialogicOkiAdpcm, 8000, 1, 3000, 48, 3);
WaveStream wsRaw = new WaveFileReader(txtFileName.Text);
wsRaw = WaveFormatConversionStream.CreatePcmStream(wsRaw); // Line A
wsRaw = new BlockAlignReductionStream(wsRaw); // Line B
WaveStream wsOKI = new RawSourceWaveStream(wsRaw, wfOKI);
WaveOut woCall = new WaveOut();
woCall.Init(wsOKI); // <-- This line gives an error.
woCall.Play();
while (woCall.PlaybackState == PlaybackState.Playing)
{
System.Threading.Thread.Sleep(300);
}
초기화()는 다음과 같은 오류가 발생합니다 : 'NAudio.MmException는'NAudio.dll에서 발생 유형의 처리되지 않은 예외 여기에 내가 파일을 재생하기 위해 함께 온 최고의 C# 코드입니다. 추가 정보 : waveButFormat은 waveOutOpen을 호출합니다.
코드가 사용자 지정 코덱을 사용하여 WAV를 재생하기위한 올바른 전략입니까? 나는 네 줄의 모든 주석을/라인 A와 B에서 (에러 메시지와 아무런 차이없이) 시도했다.
저는 Windows 7 64 비트, Visual Studio 2010 Professional (프로젝트는 x86으로 설정 됨) 및 NAudio 버전 1.6을 사용하고 있습니다. 저는 NAudio를 처음 접했지만 "표준"WAV (즉, 사용자 정의 코덱을 사용하지 않는 파일)를 재생하는 몇 줄을 보았습니다.
나는 내일까지 이것을 시도 할 수 없지만, 응답 할 시간을내어 주셔서 감사합니다. 코드는 Windows Form 응용 프로그램에서 실행됩니다. 한 가지 더요, 전용 Waveformat을 정의하고 사용해야 할 필요가 없다는 말입니까? (전용 코덱으로 Windows에서 재생되는 WAV 파일 용)? –
WaveFormat은 이미 WAV 파일에 있으므로 WAV 파일 판독기가이를 처리하고 PC에 설치된 모든 코덱에 대해 시도 할 CreatePcmStream에 올바르게 전달해야합니다. –
좋아, 그 말이 맞는 것 같아. 당신의 제안 된 코드를 시도했지만 ("var"를 "WaveStream"으로 변경하여 컴파일해야 함), Play() 행에 다음과 같은 오류가 발생했습니다. NAudio.MmException 유형의 처리되지 않은 예외가 NAudio.dll에서 발생했습니다. . 추가 정보 : acmStreamSize를 호출하는 AcmNotPossible. –