2011-03-06 104 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