Как реализовать QuickTime-подобный видеопоискатель / скруббер для Touch Bar в macOS? - PullRequest
0 голосов
/ 29 октября 2018

Я занимаюсь разработкой видеоприложения и хочу внедрить средство поиска / очистки видео, как в QuickTime, где оно отображает маленькие пальцы, и я могу искать, плавно скользя пальцем по сенсорной панели, где также отображается текущий прогресс в видео. Я видел NSScrubber класс, но он просто отображает горизонтальный список предметов. Я могу генерировать ресурсы для определенного времени в видео и отображать их, но мне нужна точная функциональность QuickTime. Это что-то встроенное в панель, или это все, что я должен делать с нуля?

1 Ответ

0 голосов
/ 31 октября 2018

Я подхожу к этому неправильно. У меня был AVPlayer, которым я управлял, с добавлением слоя вручную в иерархию. Я переключился на использование AVPlayerView, которое обеспечивало функциональность поиска / очистки из коробки. Единственный виновник состоял в том, что он заменял всю сенсорную панель (где у меня были и другие кнопки).

Я переопределил метод makeTouchBar контроллера представления (каждый ресурс указывал на использование метода контроллера окна вместо контроллера представления, который, в моем случае, не работал, и метод даже не вызывался на контроллере окна даже хотя сенсорная панель была привязана к контроллеру окна, но она была вызвана и прекрасно работала на контроллере представления) и добавила прокси-сервер других элементов:

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

И вуаля! Теперь он отлично работает, с помощью моих пользовательских кнопок сенсорной панели и панель поиска / очистки видеоплеера.

...