2011-03-06 188 views
8

目前是否有任何允许第三方Mac OS X应用程序将音频传输到AirPlay接收器的API(公共或私有)? Rogue Amoeba Software的Airfoil似乎能够做到这一点,Erica Sadun的AirFlick也是如此,但我无法找到任何可以演示如何做到这一点的源代码。任何指针都表示赞赏!适用于Mac OS X的AirPlay API

回答

4

原来的AirPlay音频流是可能的,OS X 10.8使用公共API,但并没有真正记录任何地方。 Joris Kluivers写了一篇很棒的文章blog post

0

我不认为它是可用的。至少不在10.7之前的版本中。

我猜Airfoil使用的是像John一样的DVD,当时他破解了机场快车关键负载。他发布了代码(C#),你应该可以找到它,但它很神秘。

我不知道AirFlick的用途是什么,但你总是可以尝试ping Erica,她通常会分享她的东西。

1

acouple可用的开源RAOP播放器;我没有尝试过它们,所以我不知道苹果是否已经在写入之后破坏了它们。

0

最近有人获得了AirPlay私钥,该私钥允许您在网络上的设备上的AirPlay菜单中列出您的程序。

你可以在这里阅读。还有一个从该页面链接的开源项目。 http://mafipulation.org/blagoblig/2011/04/08#shairport

请注意,您创建的任何应用程序显然永远不会被Apple批准,并且可能会在固件/软件更新中更改私钥。

+1

这个问题是关于发送到AirPlay接收器的问题。这不需要私钥。 – 2011-04-23 20:32:20

+0

@NicholasRiley啊,你是对的。 – Ben 2011-04-25 03:35:40

1

Mountain Lion(OS X 10.8)在声音设置中添加了AirPlay支持。用户可以选择将本地声音输出发送到AirPlay设备。但是,我认为你不能在你的应用程序中访问任何API。

有一些库可用于实现AirPlay,但如果您尝试在App Store上发布它,Apple会拒绝您的应用程序。至少,这是发生在我身上的事情。

我写了一个node.js模块来支持AirPlay。即使你不使用节点,你也可以通过标准输入输出你的音频数据。

https://github.com/lperrin/node_airtunes/

+0

为了澄清,我在一个OS X应用程序上工作,该应用程序为音频输出分叉了一个node.js进程。该模块还具有绑定到CoreAudio,所以你不需要为此做一个特例。 – 2012-08-03 10:26:15

+0

我不清楚你如何能够在OS X中分支一个nodejs进程。你的意思是OS X应用程序使用nodejs作为AirPlay客户端吗? – loretoparisi 2012-10-18 23:56:22

+0

我使用了[NSTask](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSTask_Class/Reference/Reference.html),正如本[问题]( http://stackoverflow.com/questions/412562/execute-a-terminal-command-from-a-cocoa-app)。该应用程序使用单独的节点。所有音频的js(本地+ AirPlay)。这个过程由通过stdin/stdout发送的命令控制。你在例子中有这个基础。 – 2012-10-19 16:27:58