我正在使用Delphi6和DSPACK来做一些涉及音频和DirectX的操作。我在“输入”端找到了将枚举的音频输入设备之一分配给TFilter对象的位置,并将该过滤器连接到TSampleGrabber对象,这为我提供了将音频发送到Skype所需的音频缓冲区。我需要弄清楚的是那个图的逻辑逆。我通过套接字从Skype接收音频缓冲区。我需要创建一个具有过滤器的图形,该过滤器将是TSampleGrabber的补充。换句话说,当有新音频可用时,TFilter不会像TSampleGrabber那样在触发事件期间提供音频缓冲区,而是会有一个类似的事件,在需要新音频为图形提供数据时会触发该事件。在该“输出”图的末尾将是分配给所列举的音频输出设备之一的TFilter,该音频输出设备的输入引脚将连接到该TSampleGrabber反向二重身的输出引脚。
有人知道怎么做吗?当然,我更倾向于避免编写自己的自定义筛选器COM对象来完成此任务。我希望有一个现有的TFilter,它接受将自定义音频缓冲区混合到DirectX过滤器图中。
发布于 2011-10-03 13:36:06
数据注入筛选器的一个常见起点是Push Source Filters Sample。这创建了一个带有仅输出引脚的过滤器,它将数据注入到DirectShow管道中,数据可以是任何类型,通常是视频或音频。
正如您提到的Delphi和DSPack,后者移植了此示例(参见\Demos\D6-D7\Filters\PushSource)。
https://stackoverflow.com/questions/7630329
复制相似问题