【问题标题】:How to implement QuickTime-like video seeker/scrubber for Touch Bar in macOS?如何在 macOS 中为 Touch Bar 实现类似 QuickTime 的视频搜索器/洗涤器?
【发布时间】:2018-10-31 08:12:02
【问题描述】:
我正在开发一个视频应用程序,我想实现一个视频搜索器/洗涤器,就像在 QuickTime 中一样,它显示小拇指,我可以通过在触控栏上平滑滑动手指来搜索,它还显示当前进度视频。我见过NSScrubber 类,但它只显示项目的水平列表。我可以为视频中的特定时间生成资产并显示它们,但我需要 QuickTime 具有的确切功能。该栏是内置的,还是完全自定义的,我应该从头开始构建?
【问题讨论】:
标签:
macos
cocoa
macos-high-sierra
nstouchbar
macbookpro-touch-bar
【解决方案1】:
我以错误的方式接近它。我有一个AVPlayer,我通过手动将其层添加到层次结构中来控制自己。我已经改用AVPlayerView,它提供了开箱即用的搜索/擦洗功能。唯一的罪魁祸首是它正在替换整个触摸栏(我还有一些其他按钮)。
我已经覆盖了视图控制器的 makeTouchBar 方法(每个资源都指出使用窗口控制器的方法而不是视图控制器的方法,在我的情况下,它不起作用,甚至没有在窗口控制器上调用该方法虽然触摸栏绑定到窗口控制器,但它被调用并在视图控制器上完美运行)并添加了其他项目代理:
-(NSTouchBar *)makeTouchBar{
NSTouchBar *bar = self.view.window.windowController.touchBar;
bar.defaultItemIdentifiers = [bar.defaultItemIdentifiers.mutableCopy arrayByAddingObject:@"NSTouchBarItemIdentifierOtherItemsProxy"];
return bar;
}
瞧!它现在可以完美运行,我的自定义触摸栏按钮 和 视频播放器的搜索/擦洗栏。