Tôi nhìn vào ví dụ iPhone aurioTouch đặc biệt vào đoạn mã sau:iPhone aurioTouch dụ: Tháo DC
static OSStatus PerformThru(
void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
aurioTouchAppDelegate *THIS = (aurioTouchAppDelegate *)inRefCon;
OSStatus err = AudioUnitRender(THIS->rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData);
if (err) { printf("PerformThru: error %d\n", (int)err); return err; }
// Remove DC component
for(UInt32 i = 0; i < ioData->mNumberBuffers; ++i)
THIS->dcFilter[i].InplaceFilter((SInt32*)(ioData->mBuffers[i].mData), inNumberFrames, 1);
// ...
}
trong file aurioTouchAppDelegate.mm.
Câu hỏi bắt đầu: "Loại bỏ thành phần DC" làm gì? Bất kỳ con trỏ đến bài viết hướng dẫn về nó được đánh giá cao.
Cảm ơn trước sự giúp đỡ của bạn.
Ai đó có thể dọn dẹp câu hỏi này? –