2011-12-03 69 views
3

我想抓住從iOS設備的iTunes資料庫中的音頻文件,然後通過藍牙傳輸到另一臺iOS設備。此時,音頻將同時從設備#1和設備#2播放。這可能嗎?如果是這樣,我可以去哪裏瞭解如何做到這一點?如果可能的話,我可以使用GameCenter或Airplay嗎?的iOS發射的iOS音樂庫到多個iOS設備

+0

嗨。我有2個問題給你。 1.您是否可以將音樂從一臺設備共享到多臺設備。 2.什麼是估計實施這個的時間? –

回答

4

不,這是完全有可能的eavesdrop應用程序做的。

您可能需要做的是獲得歌曲,您可以使用Media Player框架訪問您想要的歌曲(可能使用picker view),然後將它們作爲AVAssets加入AVFoundation框架。這可以通過使用MPMediaItem中的MPMediaItemPropertyAssetURL鍵和+[AVAsset assetWithURL:]來完成。從那裏你必須檢查AVAsset上的可導出標誌,如果它是真的,你可以使用AVAssetExportSession把它放到你應用程序的目錄中。不完全知道你打算做什麼,你實際上可以停下來在AVAsset上,並以某種方式從那裏工作。

作爲一個說明,我沒有做過任何的這個,所以不要去瘋狂,如果它不工作,但是這是我對它的理解。希望能幫助到你!

+0

竊聽只允許一個設備一次連接。我可以輕鬆地用airplay做到這一點。但是你是否建議我可以通過使用上述方法規避播放,然後使用遊戲中心流式傳輸到多個設備? – spentak

+0

就我所知,竊聽並未使用AirPlay。它可能使用bonjour或GK給它如何連接工作(值得注意的是GK內部使用bonjour)。正如我所說,我不確定它需要的完整實現,但您可以通過此方法訪問媒體文件。你打算如何分享它們是不同的。所以是的。 – axiixc

0

其實,你可以使用GameCenter的做到這一點。通過藍牙連接很簡單,有示例代碼。

+0

他的意思是訪問iPod-Songs,這是不可能的。 –

1

可以通過的GameKit框架發送幾乎所有你想要的一切。但是你不能訪問在你的iPod庫中的文件,這意味着你不能通過的GameKit框架發送至iPod的歌曲。

+0

mavrick3,人們是如何通過藍牙將他們的iPod音樂發送到外部揚聲器的?另外,有些人可以將iPod歌曲存儲爲數據(如Sprd the Note)並將其傳輸到另一個設備......因此,必須有某種訪問音樂庫的方法嗎? – spentak

1

是的,這是可能的。實現這個最好的方法是使用MultipeerConnectivity框架。它的主要用途是允許應用程序「對等」交換自定義數據,包括文本消息,文件和流式數據。通過藍牙或WiFi可以在多個iOS設備之間進行交換。

你應該考慮的唯一的事情是,該框架是第一次出現在iOS7,所以如果你需要支持的iOS舊版本的,你應該使用其他方法,例如通過GameKitCoreBluetooth網絡。顯然他們並沒有打算用於這種用法,因此這不是一個簡單的方法。他們兩個都不支持流媒體,而CoreBluetooth是爲低功耗藍牙通信而開發的,所以它的帶寬是有限的。但是你仍然可以嘗試使用這些技術來實現你需要的東西,儘管這不是最好的方法。

關於從設備iPod庫(iTunes媒體庫)獲取數據,您可以使用AVAssetReader獲取音頻數據或AVAssetExportSession以獲取完整的音頻文件到您的應用的沙箱中。你用AVURLAsset初始化它們中的任何一個。爲了創建AVURLAsset,您可以使用MPMediaItemPropertyAssetURL密鑰從MPMediaPickerControllerMPMediaItem中檢索到的URL。