0

我正在寻求澄清在构建半自动截屏和视频编码管道时遇到的问题。解决它的可靠技术也会很可爱:-)

问题

设置:基于 Quartz + Applescript 的库执行截屏脚本,在 Quicktime 等应用程序中触发屏幕录制,与网站交互,然后将屏幕录制导出到目标位置。

该管道有效。有一个例外:在使用基于 Quartz 的库或 Applescript 在文本字段中键入后,鼠标光标在生成的屏幕录制中消失了。请注意,当我观看现场直播的截屏视频时,我一直看到鼠标光标。

恢复光标

我发现了一些在执行截屏视频时恢复鼠标光标的技术:

  • 在输入文本框失去焦点后手动输入内容(不能以编程方式工作)
  • 通过 cmd-tab 切换到不同的应用程序(通过 Applescript 手动和以编程方式工作)
  • 使用 Applescript 启动一个新应用程序,但前提是它进入前台(其工作机制可能与切换到不同的应用程序相同)
  • 右键单击以触发上下文菜单出现。可以以编程方式完成,并且可以在同一个应用程序中。

我的临时解决方法是在每次脚本键入文本后通过 Applescript 简单地发出两个快速 cmd-tab 命令。这可以正常工作,尽管它确实会在生成的截屏视频中留下一些小瑕疵。

设置和实验的详细信息

关于我在这里使用的技术的更多细节。

  • 该机器是运行 Yosemite 的 2013 MBP
  • 我使用了两个独立的基于 Quartz 的库来模拟用户操作:osxautomationcliclick,它们都表现出相同的问题。
  • 我使用了三种不同的技术进行屏幕重新编码:Quicktime、Camtasia 和 ffmpeg (ffmpeg -f avfoundation -i "1:0" out.avi)。这些都可能在引擎盖下使用 AV Foundation,尽管我不确定。
  • 我使用 Safari、Firefox 和 Chrome 作为交互的目标浏览器

任何对可能导致问题的原因和/或更好解决方法的想法的见解将不胜感激!

ps 我不熟悉所涉及的大多数技术,例如 Quartz 和 AV Foundation,因此,如果我的描述存在根本性缺陷,或者我标记了一项根本不解决问题的技术,我提前道歉。

4

1 回答 1

1

我在我的一个可可应用程序中使用它来隐藏光标。

[NSCursor setHiddenUntilMouseMoves:YES];

您可以尝试通过将光标设置为“NO”或者先切换“YES”然后切换“NO”来查看它是否会取消隐藏光标。也许也可以查看其他 NSCursor 命令。

希望能帮助到你。祝你好运。

于 2015-04-02T00:09:29.847 回答