#c# #visual-studio #naudio #adpcm
#c# #visual-studio #naudio #adpcm
Вопрос:
У меня есть файл без заголовка с сохраненными необработанными данными IMA ADPCM, я хотел бы воспроизвести его с помощью NAudio. В Audacity использование этой конфигурации воспроизводится без проблем:
Encoding: VOX ADPCM
Byte order: No Endianness
Channels: 1 Channel (Mono)
Start offset: 0 bytes
Amount to import: 100%
Sample rate: 22050Hz
Это код, который я использую, но я всегда получаю систему.Ошибка исключения DivideByZeroException.
internal void PlayIMAAudio(WaveOut AudioPlayer, byte[] IMAData, int Frequency, int Bits, int Channels)
{
if (AudioPlayer.PlaybackState == PlaybackState.Stopped)
{
MemoryStream AudioSample = new MemoryStream(IMAData);
ImaAdpcmWaveFormat FileFormat = new ImaAdpcmWaveFormat(Frequency, Channels, Bits);
RawSourceWaveStream provider = new RawSourceWaveStream(AudioSample, FileFormat);
AudioPlayer.Init(provider);
AudioPlayer.Play();
}
}
Как я мог это исправить?
Спасибо!
Ответ №1:
Обычно вы не можете воспроизводить сжатые форматы напрямую. Передайте RawSourceWaveStream
into WaveFormatConversionStream.CreatePcmStream
, чтобы перейти к PCM. Это должно сработать, если на вашем ПК доступен правильный кодек и если вы правильно указали исходный формат сигнала