【发布时间】:2013-04-10 10:56:10
【问题描述】:
我想在 Mac OS X 上挂钩 C 函数。它是 AudioUnitInitialize,所以我可以创建回调并将音频保存到文件中。我从this page 获得了 Mobile Substrate 框架和教程。这是我用MSHookFunction 挂钩该函数的代码。
static OSStatus (*AudioUnitInitialize_original)(AudioUnit aInUnit);
OSStatus AudioUnitInitialize_hooked(AudioUnit aInUnit)
{
NSLog(@"AudioUnitInitialize_hooked -> START");
OSStatus __return = AudioUnitInitialize_original(aInUnit);
NSLog(@"%p", aInUnit);
NSLog(@"%@", aInUnit); // Here the target application crashes.
NSLog(@"AudioUnitInitialize_hooked -> END");
return __return;
}
...
MSHookFunction(AudioUnitInitialize, AudioUnitInitialize_hooked, &AudioUnitInitialize_original);
这里有什么问题?我可以记录音频单元的地址,但不能记录更多?有没有办法使用函数的参数?
【问题讨论】:
标签: objective-c macos audio hook core-audio