问题描述
函数setSampleRateConversionQuality
的注释
/**
* Specify the quality of the sample rate converter in Oboe.
*
* If set to None then Oboe will not do sample rate conversion. But the underlying APIs might
* still do sample rate conversion if you specify a sample rate.
* That can prevent you from getting a low latency stream.
*
* If you do the conversion in Oboe then you might still get a low latency stream.
*
* Default is SampleRateConversionQuality::None
*/
这句话是什么意思?
“如果设置为 None,则 Oboe 不会进行采样率转换。但如果您指定采样率,底层 API 可能仍会进行采样率转换”
如果我设置了 SampleRateConversionQuality = None
,采样率仍然可以被双簧管修改吗?
如果是,是什么情况导致这种情况发生?
解决方法
如果我设置了SampleRateConversionQuality = None
,采样率还能被双簧管修改吗?
不,在这种情况下,双簧管不会进行采样率转换。
“底层 API”指的是 Android 音频框架,如果您指定的采样率与底层音频硬件的本机采样率不匹配,该框架可能会执行重采样。如果 Android 音频框架进行重采样,您将无法获得低延迟流。
这就是为什么在双簧管中引入重采样的原因。这意味着双簧管可以重新采样您的音频数据,这样音频框架就不必重新采样,并且意味着您可以获得具有特定采样率的低延迟流。