微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 NAudio 播放 IMA ADPCM 音频

如何解决使用 NAudio 播放 IMA 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

这是我正在使用的代码,但我总是收到 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();
    }
}

我该如何解决

谢谢!

解决方法

您通常无法直接播放压缩格式。将 RawSourceWaveStream 传入 WaveFormatConversionStream.CreatePcmStream 以到达 PCM。如果您的 PC 上有正确的编解码器,并且您已正确指定源 WaveFormat

,那么这应该可行

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。