- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用Naudio播放从/从调制解调器流传输的声音的应用程序(在此特定调制解调器上没有Tapi的运气,因此使用AT命令)。
当我使用线性波形时(WaveFormat waveFormat = new WaveFormat(8000,16,1);),这可以很好地工作,但是现在我想尝试使用全双工,这意味着使用稍微更有效的声音格式可能是一个好主意。
看到Naudio具有ImaAdpcmWaveFormat,因此尝试用该对象替换WaveFormat对象(ImaAdpcmWaveFormat imaadpcm_waveformat = new ImaAdpcmWaveFormat(8000,1,4);)。
但是,现在waveout.init抛出System.DivideByZeroException :(。
当我设法误读了WaveFormat的规范并将2代替16表示“位”时,我遇到了类似的问题,但是IMA ADPCM可接受的速率是4位/样本吗?无论如何,8或16位/样本的相同异常(exception)...
异常数据:
System.DivideByZeroException HResult=0x80020012 Message=Attempted to divide by zer0. Source=NAudio StackTrace:
at NAudio.Wave.WaveFormat.ConvertLatencyToByteSize(Int32 milliseconds)
at NAudio.Wave.WaveOut.Init(IWaveProvider waveProvider)
at USRModemTest.Form1..ctor() in C:\Users\c\Source\Repos\USRModemTest\USRModemTest\Form1.cs:line 56
at USRModemTest.Program.Main() in C:\Users\c\Source\Repos\USRModemTest\USRModemTest\Program.cs:line 19
//waveFormat = new WaveFormat(8000, 16, 1);
imaadpcm_waveformat = new ImaAdpcmWaveFormat(8000, 1, 4);
//bwp_ModemToSpeakers = new BufferedWaveProvider(waveFormat);
bwp_ModemToSpeakers = new BufferedWaveProvider(imaadpcm_waveformat);
bwp_ModemToSpeakers.DiscardOnBufferOverflow = true;
//bwp_ModemToSpeakers.BufferDuration = System.TimeSpan.FromMilliseconds(200);
bwp_ModemToSpeakers.ReadFully = true;
bwp_ModemToSpeakers.BufferLength = 1000 ; // as small as possible it seems
waveout = new WaveOut();
waveout.DeviceNumber = -1; // default communications device
waveout.DesiredLatency = 200;
waveout.Init(bwp_ModemToSpeakers);
最佳答案
您不能直接播放使用IMA ADPCM编码的音频。我建议您先将音频解码为PCM,然后再将其放入BufferedWaveProvider
中。在NAudio演示项目中可以找到此示例,并且可以使用AcmStream
类进行转换。
关于c# - Naudio ImaAdpcmWaveFormat,BufferedWaveprovider不满意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55278833/
我正在使用Naudio播放从/从调制解调器流传输的声音的应用程序(在此特定调制解调器上没有Tapi的运气,因此使用AT命令)。 当我使用线性波形时(WaveFormat waveFormat = ne
我是一名优秀的程序员,十分优秀!