AudioGraph的DesiredSamplesPerQuantum属性将被忽略

时间:2018-11-15 20:55:10

标签: c# audio uwp

我正在开发UWP音频应用程序。最新的Windows 10 SDK版本1803。

我想增加我的应用程序的AudioGraph上使用的SamplesPerQuantum。 根据{{​​3}},我应该在创建AudioGraph之前指定属性DesiredSamplesPerQuantum和QuantumSizeSelectionMode。

我正在这样创建AudioGraph:

AudioGraphSettings settings = new AudioGraphSettings(AudioRenderCategory.Media);
settings.DesiredSamplesPerQuantum = 960; // 20ms
settings.QuantumSizeSelectionMode = QuantumSizeSelectionMode.ClosestToDesired;
CreateAudioGraphResult result = await AudioGraph.CreateAsync(settings);
Debug.WriteLine("SamplesPerQuantum=" + result.Graph.SamplesPerQuantum);

我尝试了一切,SamplesPerQuantum属性始终为480 ...

这是个问题,因为我在每个垃圾收集的音频输出中都得到了点击。我认为默认的10ms时间太短了...

1 个答案:

答案 0 :(得分:1)

  

我尝试了一切,SamplesPerQuantum属性始终为480 ...

默认情况下,基于默认采样率,量子大小为10 ms。系统将选择一个尽可能接近您指定的量子尺寸。如果语音设备的采样率限制为48000hz,则SamplesPerQuantum将限制为480。根据您的要求,可以将采样率设置为96000hz。这样您的设置就可以使用了。

enter image description here

我已经与媒体团队讨论过,他们给出以下答复。总体思路是DesiredSamplesPerQuantum与您的硬件有关。

更新

客户看到的行为取决于基础音频硬件。 DesiredSamplesPerQuantum属性只是对底层硬件的建议。如果硬件/驱动程序不支持所请求的量程,则将不会设置它。 GC运行时,音频中可能会发出喀哒声或弹出声。这是因为托管语言是不确定的。

这是詹姆斯·戴利(James Dailey)的blog,您可以参考。