当前位置: 首页 > 面试题库 >

使用ScriptingBridge无法读取macOS中当前播放的曲目

沙靖琪
2023-03-14
问题内容

我正在尝试使用ScriptingBridge阅读iTunes当前正在播放的曲目。我在这里找到了其他两个线程,但似乎没有一个对我有用(macOS
Mojave和iTunes 12.9.4)。

我使用以下命令创建了iTunes.h文件

sdef /Applications/iTunes.app | sdp -fh --basename "iTunes"

我正在创建脚本桥的实例,如下所示:

if let itunes: AnyObject = SBApplication(bundleIdentifier: "com.apple.iTunes")
{
  if itunes.isRunning
  {
    Swift.print("iTunes is running...")
  }

  Swift.print(itunes.currentTrack?.name)
  Swift.print(itunes.currentTrack?.album)
}

该代码可以正常编译。运行代码时,得到以下输出:

iTunes is running...
nil
nil

currentTrack为零,但iTunes正在播放歌曲。我在这里想念什么?我已经尝试禁用沙箱,但无济于事。我正在使用macOS Mojave,Xcode
10.2和iTunes 12.9.4。另外,当iTunes未运行时,它将启动吗?为什么?

是否会有另一种方法来获取iTunes当前播放的歌曲?


问题答案:

关键是您必须在某个时候看到显示以下内容的对话框

MyApp希望访问以控制“ iTunes”。允许控制将提供对“ iTunes”中的文档和数据的访问,并在该应用程序内执行操作。

如果您尚未看到该对话框:

  • 在权利,把沙箱 关闭

  • Info.plist中 ,添加一个Privacy-AppleEvents Sending Usage Description条目,其值为任意字符串。

运行应用程序。如果仍然无法正常工作,请在终端机上说:

tccutil reset AppleEvents

并再次运行该应用程序。



 类似资料:
  • 编辑:让我们试着澄清这一切。 我正在编写一个python脚本,希望它告诉我Spotify当前正在播放的歌曲。 我试着寻找可以帮助我的库,但没有找到任何仍在维护和工作的库。我还浏览了Spotify的web API,但它没有提供任何获取这些信息的方法。 我找到的唯一潜在解决方案是抓住我的Spotify(桌面应用)窗口的标题。但是到目前为止我还没有做到。 所以基本上,我问的是是否有人知道: > 如何应用

  • 我正在实现一个与获取当前音乐曲目信息相关的应用程序。

  • 我正在尝试集成web API来获取当前正在播放/最近播放的歌曲。但是,我无法生成具有范围(user-read-one-play,user-read-report-state)的令牌。 我关注这个链接是为了引用Spotify。https://developer.spotify.com/web-api/authorization-guide/ 我得到了超文本标记语言响应。 请帮忙。非常感谢。

  • 我是一个非常noob的用户,我正在尝试在我的Android应用程序中播放Spotify的一些曲目。目前我正在使用kaaes API:https://github.com/kaaes/spotify-web-api-android 我正在努力从一个非常特定的播放列表和一个非常特定的用户ID中检索曲目。似乎我做不到,我找到的例子都是老的,对我没有帮助。以下是我尝试过的: 从寻呼机对象访问播放列表 它会

  • 所以我用javafx制作了一个mp3播放器,它有一个,在这里我拖放歌曲,然后选择一首歌曲并按play播放,你就明白了。问题是,用我当前的代码,我不能播放两首以上歌曲的序列:/(播放选定的歌曲,播放它旁边的歌曲,然后停止)。代码如下:

  • 我将LastFM API中的艺术家、曲目和专辑存储在一个小部件中。我想在用户单击play时播放Spotify歌曲的30秒片段。有可能这样做吗?我正在努力寻找一种方法。。尤其是在没有用户身份验证/权限的情况下。 Spotify应用程序API:播放专辑中的特定曲目 这看起来很有希望,但我不确定这是否是我所说的。。。 如果有人能给我指出正确的方向(使用什么样的API调用),那就太好了!我可以从那里找到剩