我正在开发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时间太短了...
答案 0 :(得分:1)
我尝试了一切,SamplesPerQuantum属性始终为480 ...
默认情况下,基于默认采样率,量子大小为10 ms。系统将选择一个尽可能接近您指定的量子尺寸。如果语音设备的采样率限制为48000hz,则SamplesPerQuantum
将限制为480。根据您的要求,可以将采样率设置为96000hz。这样您的设置就可以使用了。
我已经与媒体团队讨论过,他们给出以下答复。总体思路是DesiredSamplesPerQuantum
与您的硬件有关。
更新
客户看到的行为取决于基础音频硬件。 DesiredSamplesPerQuantum
属性只是对底层硬件的建议。如果硬件/驱动程序不支持所请求的量程,则将不会设置它。
GC运行时,音频中可能会发出喀哒声或弹出声。这是因为托管语言是不确定的。
这是詹姆斯·戴利(James Dailey)的blog,您可以参考。