以编程方式控制DirectVobSub过滤器

问题描述 投票:1回答:1

我有一个基于DirectShow的播放器,它使用DirectVobSub来显示字幕。

我想要快捷方式来上下移动字幕同步。

这在VobSub对话框中是可能的,但是没有快捷方式。

我使用Visual C ++,现在我拥有指向VobSub过滤器的IBaseFilter指针,我想我必须以某种方式调用该接口。有什么想法吗?

video visual-c++ directshow subtitle
1个回答
0
投票

您应该能够从IDirectVobSub使用常规IUnknown::QueryInterface获得IBaseFilter和类似的接口。

通常,要获取这些接口的定义,首先需要检查用于构建过滤器的源(您是从某个地方得到的,对吧?)。尽管也可以从另一个存储库中复制一份副本。

https://github.com/Fluffiest/mpc-hc/blob/cfd18b62248c0e97f5626d94539d60d5361cc5a1/src/filters/transform/VSFilter/IDirectVobSub.h#L30

    interface __declspec(uuid("EBE1FB08-3957-47ca-AF13-5827E5442E56"))
IDirectVobSub :
    public IUnknown
    {
        STDMETHOD(get_FileName) (THIS_
                                 WCHAR* fn  // fn should point to a buffer allocated to at least the length of MAX_PATH (=260)
                                ) PURE;

        STDMETHOD(put_FileName) (THIS_
                                 WCHAR* fn
                                ) PURE;
© www.soinside.com 2019 - 2024. All rights reserved.