我是一个新手在核心音频,AudioUnit框架,我没有太多的知识,所以请与我一起承担。
我有一个需求,那就是我需要使用webRTC通过远程调用访问实时流。在webRTC框架中,没有办法访问音频流。
因此,我的想法是通过Apple音频框架访问该音频流,我正在考虑在将其发送到扬声器之前捕获音频。是否有可能在将音频缓冲区发送到扬声器之前获得音频缓冲区。
我必须用一些值修改音频缓冲区,并将其发送回扬声器。
请帮帮我!
发布于 2016-12-08 17:11:17
您可以将render回调设置为output AudioUnit,并在将其发送给扬声器之前修改音频缓冲区。
AURenderCallbackStruct callbackStruct;
callbackStruct.inputProc = inputRemoteRenderCallback;
callbackStruct.inputProcRefCon = sourceUnit;
AudioUnitSetProperty(outputAudioUnit,
kAudioUnitProperty_SetRenderCallback,
kAudioUnitScope_Input,
0,
&callbackStruct,
sizeof(callbackStruct));和回调:
static OSStatus inputRemoteRenderCallback (void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData
) {
AudioUnit au = (AudioUnit)inRefCon;
AudioUnitRender(au,
ioActionFlags,
inTimeStamp,
0,
inNumberFrames,
ioData);
return noErr;
}https://stackoverflow.com/questions/38182147
复制相似问题