Chrome扩展程序可在Mac OS X中控制iTunes

时间:2014-06-28 21:36:00

标签: javascript macos google-chrome-extension itunes messaging

我正在为Google Chrome创建一个可以启动和扩展的扩展程序。停止在iTunes(本机应用程序)中播放,获取其媒体库等信息。操作在Mac OS X 10.9.3 Mavericks中进行。

我已经找到了Chrome Runtime API,它有一些原生方法:

chrome.runtime.sendNativeMessage(.., .., ..)
chrome.runtime.connectNative(.., ..)

developer.chrome.com描述了它们。它们允许向本机应用程序发送某种“消息”。我已成功为iTunes创建了本机消息传递主机。首先我的尝试是connectNative(),但iTunes立即断开连接。然后我发了一条随机消息(我在后台页面中发送):

chrome.runtime.sendNativeMessage(
  host,
  {text: "foo bar"},
  function(response){
    console.log(response);
        // > Undefined
    console.log(chrome.runtime.lastError.message);
        // > "Native host has exited."
});

所以现在我遇到了两个问题:

  1. 我是在正确的路上吗?我正在尝试做什么呢?
  2. 究竟应该在这些“消息”中发送什么内容?
  3. 一般来说,我需要能够在媒体库中执行搜索,开始播放某首歌曲,打开某个流 - 所有这些都是由不同的用户操作引发的。基本上,我可以创建辅助cocoa应用程序作为此扩展程序和iTunes之间的一个门,它可以完美地完成iTunes的所有混乱,但我很确定它是一种过度杀伤力,并且存在一些方法来完成扩展内的所有操作。 / p>

2 个答案:

答案 0 :(得分:1)

本机消息传递要求本机可执行文件支持Chrome本机消息传递。具体做法是:

  

Chrome会在单独的进程中启动每个本机消息传递主机   使用标准输入(stdin)和标准输出与它通信   (标准输出)。相同的格式用于在两个方向上发送消息:   每个消息都使用JSON,UTF-8编码并序列化   以原生字节顺序的32位消息长度。

对该主题进行了零研究后,我仍然确信iTunes不是为支持Chrome原生消息而编写的(这就是为什么它“立即断开连接”,因为它不知道你想要做什么),并且由于您没有iTunes的来源,您将无法更改它。

如果您知道如何使用您编写的其他本机可执行文件来操作iTunes,那么您可以教那个可执行文件来讨论Chrome本机消息,从而充当翻译您自己的桥梁iTunes动作的音乐协议。

答案 1 :(得分:0)

我做了一些研究,并从一年前读到这篇文章,谈论从chrome使用iTunes的可能性。

Link to the Article

其次,从那里引用:Chrome媒体画廊API

Link to media galleries API

我认为API足以查找曲目。这不是与iTunes交互的方式,而是从库中访问您的数据。不确定您是否可以通过浏览器与iTunes软件进行通信(尽管有趣的想法)。