【发布时间】:2020-12-09 17:52:06
【问题描述】:
在尝试实时降低 WAV 文件的音量时,音频正在剪辑(或单击)。
我已经在 SampleChannel、VolumeSampleProvider 和 WaveChannel32 实例上进行了尝试,源是 32 位 WAV 文件。
如果我在 WaveOut 实例上尝试,则不会再发生削波,但我不希望这样,因为它会降低应用程序中所有声音的音量。
只有当我降低音量时才会发生这种情况,提高音量不会导致削波。
这是一个已知问题还是我应该以不同的方式解决这个问题?
注意: 这是在给定时间跨度内音量实时下降的方式:
0.9523049
0.9246111
0.9199954
0.89384
0.8676848
0.8415294
0.8169126
0.7907572
0.7646018
0.739985
0.7122912
0.6892129
0.6630576
0.6369023
0.6122856
0.5861301
0.5599748
0.535358
0.5092026
0.4830474
0.456892
0.4322752
0.4061199
0.3799645
0.3553477
0.3276539
0.3030371
0.2784202
0.2522649
0.2261095
0.2014928
0.176876
0.149182
0.1245652
0.09841
0.07225461
0.04763785
0.02148246
0
【问题讨论】:
-
在开始应用这些因素之前,您确定音量是 1.0 吗?您确定在此操作期间没有设置其他值吗?
-
是的,我确信音量总是从 1.0 开始,并且在操作期间没有设置其他值。我通过隔离案例来确保没有其他因素可以干扰。
-
好的,显然这是
WaveOut实例上的DesiredLatency和NumberOfBuffers问题。默认值会导致问题,更改值会解决问题。 -
您可以回答自己的问题,以便其他人找到此解决方案。