来自远程 I/O 单元的原始音频数据的测量单位是啥?

Posted

技术标签:

【中文标题】来自远程 I/O 单元的原始音频数据的测量单位是啥?【英文标题】:What is the unit of measurement of raw audio data from Remote I/O unit?来自远程 I/O 单元的原始音频数据的测量单位是什么? 【发布时间】:2015-08-05 07:16:17 【问题描述】:

我正在使用远程 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 CopyAudioDataToDrawBuffer:(Float32 *)ioData->mBuffers[0].mData frames:inNumberFrames];
        
    
    return err;

这个原始音频数据的测量单位是什么(mBuffers[0].mData,如果你查找 AudioBuffer 结构,它是一个空指针)。

是帕斯卡还是毫伏 (mV) ?提前致谢。

【问题讨论】:

【参考方案1】:

两者都不是 - 它可以是多种音频数据格式中的一种常见的有:

float 带有值 -1.0 <= x <= 1.0 16 位 signed short-32768 < x < 32768

其中最小值和最大值是可以在不裁剪的情况下表示的最小和最大样本值。

为了计算输出电压,您需要确定音频系统其余部分的增益。您可以假设以帕斯卡为单位的 SPL 与输出功率或多或少呈线性关系,与V^2 成正比。

【讨论】:

以上是关于来自远程 I/O 单元的原始音频数据的测量单位是啥?的主要内容,如果未能解决你的问题,请参考以下文章

编写远程 I/O 渲染回调函数时遇到问题

多个文件播放器上的Core Audio声音测量

FFT 的返回值(系数)的单位是啥?

磁盘IOPS计算与测量

如何在 iOS 的 AUGraph 中添加两个 I/O 音频单元?

在 iOS 中同时使用两个音频单元进行 I/O 是不是安全?