首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获从远程设备发送到扬声器的混音后音频缓冲区

捕获从远程设备发送到扬声器的混音后音频缓冲区
EN

Stack Overflow用户
提问于 2015-07-15 18:08:22
回答 1查看 83关注 0票数 0

有没有办法捕获从remoteIOUnit发送到扬声器的音频缓冲区?我在不同的线程上渲染了几个不同的循环到同一个IOUnit (一个是点击,另一个是音乐),并希望执行音乐是如何与点击排队的分析,而不必过滤任何噪音来自,比方说,使用麦克风输入。我的数学计算必须非常准确(误差小于2ms ),所以获得这个混合后的缓冲区将是理想的。

EN

回答 1

Stack Overflow用户

发布于 2015-07-15 20:41:57

可以,您只需使用AudioUnitAddRenderNotify向remoteIO添加一个呈现通知回调。然后,每个缓冲区将获得四个回调:输入预渲染、输入后渲染、输出预渲染和输出后渲染。您只需要对适当的ioActionFlags和inBusNumber执行操作。

代码语言:javascript
复制
AudioUnitAddRenderNotify(remoteIO, inputOutputTap, (__bridge void *)self);

OSStatus inputOutputTap (void *                         inRefCon,
                         AudioUnitRenderActionFlags *   ioActionFlags,
                         const AudioTimeStamp *         inTimeStamp,
                         UInt32                         inBusNumber,
                         UInt32                         inNumberFrames,
                         AudioBufferList *              ioData) {

    if (*ioActionFlags == kAudioUnitRenderAction_PostRender && inBusNumber == 0) {
        MyObject *self = (__bridge MyObject *)inRefCon;
        MyObjectDoTheThing(self,ioData,inTimeStamp); 
    }
    return noErr;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31427451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档