如何使用编译后的音频处理对象(APO).DLL及相关技术疑问
关于APO编译与运行的疑问
我编译了一些测试APO,但不确定能否正常工作。编译完成后得到一个DLL文件,通常会导出以下方法:
EXPORTS DllCanUnloadNow PRIVATE DllGetClassObject PRIVATE DllRegisterServer PRIVATE DllUnregisterServer PRIVATE
- 我知道DllGetClassObject里包含ClassFactory,它的
ClassFactory::CreateInstance方法会返回APO实例,但不清楚最初是什么进程或系统组件调用这个方法。 - 我了解
DllRegisterServer和DllUnregisterServer需要配合regsvr32.exe使用,但完全不懂这两个操作具体在做什么,它们和APO的挂载、运行有什么关联?
比如Soundpad这款应用,它用名为UniteFX的APO实现了把音频文件通过麦克风播放的功能(需要禁用DRM),我猜测这个APO是通过WASAPI挂载到音频设备链里的。
现在我有几个核心问题:
- 编译好的APO最终是如何启动运行的?
- 怎么拦截麦克风驱动,修改它的输入输出数据?
- 如何让我的APO连接并桥接Windows系统中正在运行的音频设备?
目前我只知道APOProcess是执行实际音频处理的核心模块(参考微软官方文档),但完全搞不懂regsvr32是怎么把这些环节串起来的。
内容的提问来源于stack exchange,提问作者karl-police
相关产品推荐
相关产品推荐

