如何在macOS中为Touch Bar实施类似QuickTime的视频搜寻器/清理器?

时间:2018-10-29 19:39:22

标签: macos cocoa macos-high-sierra nstouchbar macbookpro-touch-bar

我正在开发一个视频应用程序,我想实现一个视频搜索器/清理器,就像在QuickTime中显示小拇指一样,并且我可以通过在触摸栏上平滑滑动手指来寻找它,并在其中显示当前进度。视频。我见过NSScrubber类,但它只显示项目的水平列表。我可以为视频中的特定时间生成资产并显示它们,但我需要QuickTime具备的确切功能。该栏是内置的吗,还是我应该从头开始完全定制?

1 个答案:

答案 0 :(得分:0)

我走错了路。我有一个AVPlayer,我可以通过手动将其图层添加到层次结构中来控制自己。我改用了AVPlayerView,它提供了开箱即用的搜索/清理功能。唯一的罪魁祸首是它正在取代整个触摸条(我也有其他一些按钮)。

我已经重写了视图控制器的makeTouchBar方法(每个资源都指出要使用窗口控制器的方法而不是视图控制器的方法,在我的情况下,这是行不通的,并且甚至没有在窗口上调用该方法尽管触摸栏已绑定到窗口控制器,但它却被调用并在视图控制器上完美工作)并添加了其他项代理:

-(NSTouchBar *)makeTouchBar{
    NSTouchBar *bar = self.view.window.windowController.touchBar;
    bar.defaultItemIdentifiers = [bar.defaultItemIdentifiers.mutableCopy arrayByAddingObject:@"NSTouchBarItemIdentifierOtherItemsProxy"];
    return bar;
}

瞧!现在,使用我自定义的触摸栏按钮视频播放器的搜索/滑动条,即可完美运行。