将iOS库中的音乐传输到多个iOS设备

3
我希望能够从iOS设备的iTunes库中获取音频文件,然后通过蓝牙传输到另一个iOS设备。此时,音频将同时从设备#1和设备#2播放。这是否可能?如果是,请告诉我去哪里学习如何做到这一点?如果可能,我可以使用GameCenter或Airplay吗?

你好。我有两个问题要问你。1. 你能否将音乐从一个设备分享到多个设备?2. 实现这个功能的预计时间是多久? - Akshay Nalawade
5个回答

4

这是完全可能的,eavesdrop 应用程序可以实现。

要获取歌曲,您可能需要使用媒体播放器框架来获取您想要的歌曲(可能使用选择器视图),然后将它们作为AVAssets引入到AVFoundation框架中。这可以通过使用MPMediaItem的MPMediaItemPropertyAssetURL密钥和+[AVAsset assetWithURL:]实现。接下来,您需要检查AVAsset上的可导出标志,如果为真,则可以使用AVAssetExportSession将其导出到应用程序目录中。不完全了解您的计划,您甚至可以在AVAsset处停止,并从那里进行操作。

作为一条注释,我从未做过这些事情,所以如果它不起作用,请不要生气,但这是我的理解。希望能对您有所帮助!

eavesdrop 只允许一台设备连接。我可以轻松地通过 airplay 实现这一点。但是你是在暗示我可以通过上述方法规避 airplay,然后使用游戏中心流式传输到多个设备吗? - spentak
据我所知,Eavesdrop并不使用AirPlay。它可能使用Bonjour或GK,因为它的连接方式是这样的(值得注意的是,GK在内部使用Bonjour)。正如我所说,我不确定完整的实现需要什么,但是你可以通过这种方法访问媒体文件。你打算如何分享它们是另一回事。所以,是的。 - axiixc

1
是的,这是可能的。最好的实现方法是使用MultipeerConnectivity框架。它主要用于允许应用程序"点对点"交换自定义数据,包括文本消息、文件和流数据。通过蓝牙或WiFi,多个iOS设备之间可以进行交换。
唯一需要考虑的是该框架首次出现在iOS7上,因此如果您需要支持旧版本的iOS,则应使用其他方法,例如通过GameKitCoreBluetooth进行网络连接。显然,它们并不适合这种用途,因此这不是一种简单的方式。它们都不支持流,而CoreBluetooth是为低功耗蓝牙通信开发的,因此其带宽受限。但是,您仍然可以尝试使用这些技术来实现所需的功能,尽管这不是最好的方式。

关于从设备iPod库(iTunes媒体库)获取数据,您可以使用AVAssetReader获取音频数据或AVAssetExportSession将完整的音频文件导入您的应用程序沙盒中。您可以使用AVURLAsset来初始化它们中的任何一个。而要创建AVURLAsset,您可以使用从MPMediaPickerControllerMPMediaItem检索到的URL,并使用MPMediaItemPropertyAssetURL键。


1

你可以通过GameKit框架发送几乎所有你想要的东西。但是你无法访问iPod库中的文件,这意味着你不能通过GameKit框架发送iPod歌曲。


Mavrick3,人们是如何通过蓝牙将iPod音乐发送到外部扬声器的?此外,有些人能够将iPod歌曲存储为数据(例如Sprd the Note),并将其传输到另一台设备...因此必须有某种访问音乐库的方式,对吧? - spentak

0

我非常确定他们在询问iOS而不是Android。 - allingeek

0

实际上,您可以使用GameCenter来完成。通过蓝牙连接非常简单,有示例代码可供参考。


他的意思是访问iPod歌曲,这是不可能的。 - Fabio Poloni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接