NAudio를 WAV 파일로 사용하여 오디오 녹음을 구현하려고 시도했지만 WasapiLoopbackCapture 클래스로 설정된 기본 비트 전송률을 프로그래밍 방식으로 변경할 수 없습니다.NAudio - 녹음 된 WAV 파일의 비트 전송률 변경
오디오 출력을 MemoryStream에 녹음합니다 (아래의 snippet에서 녹음 스트림). 그러나 WasapiLoobpackCapture가 설정 한 기본 비트 전송률은 내 필요에 맞지 않습니다.
나는 320KBPS의 비트 전송률을 갖고 싶습니다. WaveformatConversionStream 클래스를 사용하여 프로그래밍 방식으로 기록 된 파일을 변환하려고했지만 작동하지 못했습니다.
WaveFormat targetFormat = WaveFormat.CreateCustomFormat(waveIn.WaveFormat.Encoding,
waveIn.WaveFormat.SampleRate, //SampleRate
waveIn.WaveFormat.Channels, //Channels
320000, //Average Bytes per Second
waveIn.WaveFormat.BlockAlign, //Block Align
waveIn.WaveFormat.BitsPerSample); //Bits per Sample
using (WaveStream inputStream = new RawSourceWaveStream(recordedStream, waveIn.WaveFormat))
{
try
{
using (var converter = new WaveFormatConversionStream(targetFormat, inputStream))
{
// ...
}
}
catch (Exception)
{
throw;
}
recordedStream.Dispose();
}
"AcmNotPossible calling acmStreamOpen"변환 예외가 항상 발생합니다. 보시다시피, 나는 목표 WAV에서 더 낮은 비트 전송률을 제외하고는 기록 된 WAV 파일 (확장 인코딩, 44100 등)과 정확히 동일한 형식을 사용하고 있습니다.
MemoryStream에 포함 된 Wav 파일에서 비트율 변환을 수행하는 올바른 코드는 무엇입니까? 내 목표는 320KBPS 파일을 얻는 것입니다.
audioClient.MixFormat의 채널 수는 4이고 비트 심도는 32이며 샘플 속도는 44100입니다. 비트 심도를 16으로, 채널 수를 2로 변경할 수있는 코드를 표시 할 수 있습니까? –
4 채널 오디오는 아주 드문 경우입니다. 필요하지 않은 경우 두 개의 채널을 삭제하거나 왼쪽 또는 오른쪽 채널 중 하나에 혼합하십시오. 나는 [기사] (http://www.codeproject.com/Articles/501521/How-to-convert-between-most-audio-formats-in-NET)을 작성했다.이 기사에서는 비트 깊이를 채널 수를보다 자세히 설명합니다. –
StereoToMono 함수와 비슷한 코드를 사용하여 두 개의 채널을 버리려고했지만 좋은 오디오 출력을 얻을 수 없었습니다. 실제로 4 채널에서 2 채널로 전환하는 코드 스 니펫을 표시 할 수 있습니까? –