我使用ruby通过脚本桥检查我在quicktime中播放的视频的位置。
现在我只是每隔几秒钟检查一下位置:

require 'osx/cocoa'

include OSX
OSX.require_framework 'ScriptingBridge'

app = SBApplication.applicationWithBundleIdentifier_("com.apple.QuickTimePlayerX")

while true
  app.documents.each do |doc|
    p doc.currentTime
    p doc.playing
  end
  wait(n_seconds)
end

这比我想要的CPU更密集,有没有办法让脚本桥在特定事件发生时触发Ruby块?
当文件被打开、关闭、暂停/恢复等时?
提前谢谢!

最佳答案

这不是脚本桥的作用。这只是一种使用cocoa而不是applescript来发送和接收苹果事件的方法。您所能做的仅限于其他应用程序的脚本字典。
因此,问题变成了“QuickTime播放器是否有办法向其注册我的应用程序,以便在发生某些事情时向我的应用程序发送事件”,而通过查看其字典确定的答案是否定的。
你可以考虑在自己的应用程序中播放电影。然后,您将能够在事情发生时被动地接收通知,而不必轮询。

关于ruby - 使用脚本桥进行回调?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3392914/

10-08 22:34
查看更多