我正在使用远程 I/O 单元录制原始音频数据,如下所示:
static OSStatus performRender(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
OSStatus err = noErr;
if (*callbackStruct.audioChainIsBeingReconstructed == NO)
{
err = AudioUnitRender(callbackStruct.rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData);
{
[callbackStruct.bufferManager CopyAudioDataToDrawBufferFloat32 *)ioData->mBuffers[0].mData frames:inNumberFrames];
}
}
return err;
}
这个原始音频数据的度量单位是什么(mBuffers[0].mData,如果你查找 AudioBuffer 结构,它是一个空指针)。
是帕斯卡还是毫伏 (mV) ?提前致谢。
Best Answer-推荐答案 strong>
两者都不是 - 它可以是多种音频数据格式中的一种常见的有:
float 值 -1.0 <= x <= 1.0
- 16 位
signed short 值 -32768 < x < 32768
其中最小值和最大值是可以在不裁剪的情况下表示的最小和最大样本值。
为了计算输出电压,您需要确定音频系统其余部分的增益。您可以假设以帕斯卡为单位的 SPL 与输出功率或多或少呈线性关系,与 V^2 成正比。
关于ios - 来自远程 I/O 单元的原始音频数据的测量单位是什么?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/31825808/
|