问题描述
有时我希望我在Oboe中的音频输出不播放任何声音,但我不希望它停止播放,我只是希望在没有数据到达时保持静音。我尝试过:
static void writeBlankData(float* pointer,int numFrames) {
std::fill_n(pointer,numFrames,0);
}
oboe::DataCallbackResult PlayRecordingCallback::onAudioReady(
oboe::AudioStream *audioStream,void *audioData,int numFrames) {
float *floatData = (float *) audioData;
writeBlankData(floatData,numFrames);
return oboe::DataCallbackResult::Continue;
}
但是我听到音频输出嗡嗡声而不是静音。 0
数组不应该保持沉默吗?我也尝试过-1.0f
,但蜂鸣声却有所不同。
解决方法
最可能的原因是流是立体声的,因此每帧有2个样本。您当前的代码假设一个单声道流。
尝试更改:
writeBlankData(floatData,numFrames);
收件人:
writeBlankData(floatData,numFrames * audioStream->getChannelCount());