我有一个没有头与IMA原始数据存储的文件,我想使用NAudio播放它。在Audacity中,使用此配置时不会出现问题:
Encoding: VOX ADPCM
Byte order: No Endianness
Channels: 1 Channel (Mono)
Start offset: 0 bytes
Amount to import: 100%
Sample rate: 22050Hz这是我正在使用的代码,但我总是得到一个System.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();
}
}我怎么才能修好它?
谢谢!
发布于 2021-01-09 17:51:46
您通常不能直接播放压缩格式。将RawSourceWaveStream传递到WaveFormatConversionStream.CreatePcmStream以到达PCM。如果您的PC上有正确的编解码器,并且您已经正确地指定了源WaveFormat,那么这种方法就能工作。
https://stackoverflow.com/questions/65568493
复制相似问题