2011-12-03 39 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。