从我的应用程序内部控制其他应用程序的音乐播放?
Posted
技术标签:
【中文标题】从我的应用程序内部控制其他应用程序的音乐播放?【英文标题】:Control other apps music playing from inside my app? 【发布时间】:2017-08-11 12:25:32 【问题描述】:在我的应用程序中,如果任何其他应用程序已经在播放音乐,我想控制stop/play
、skipToNext
和goToPrevious
歌曲。类似于控制中心已经做的事情,但我希望这些按钮在我的应用程序中可用。
我看到MPMusicPlayerController
允许 Apple Music 应用使用 skipToPreviousItem()
、skipToBeginning()
、skipToNextItem()
。但我正在寻找一种适用于任何其他应用程序(SoundCloud、Spotify、Deezer 等)的解决方案,就像控制中心一样。
有什么方法可以控制在我的应用内播放的其他应用音乐吗?
【问题讨论】:
一句话,没有。沙盒会阻止您直接访问不在您的应用组中的应用。现在,如果所说的应用程序有一个 API.... 我知道沙盒。但是播放音乐使用共享资源,并且在系统级别上有一些支持。例如,我可以使用AVAudiosession.sharedInstance().isOtherAudioPlaying
来检查是否有任何播放。如果您从屏幕底部向上滑动,我希望能在控制中心看到类似下一个/停止/上一个的内容。
请记住,您提到的所有内容(MPMusicPlayerController
、AVAudioSession
、“Apple Music”和“控制中心”)都来自 Apple - 谁使您正在编程的操作系统。这符合我对“展示我”的个人测试 - 向我展示另一个可以做你想做的事情的应用程序。除非这些第三方应用程序在 iOS 沙盒的约束下工作,向你开放他们的沙盒——深度链接、API 等等——我认为你无法做到这一点。
【参考方案1】:
有两种可能的解决方法:
A) 现在有一个Spotify App Remote SDK
https://github.com/spotify/ios-app-remote-sdk#sptappremoteuserapi。您可以使用它直接控制 Spotify 应用。
B) 如果您只能控制 stop/play
,您可以接管将停止 Spotify 的音频会话,然后结束您的会话,希望 Spotify 会自动恢复。
【讨论】:
以上是关于从我的应用程序内部控制其他应用程序的音乐播放?的主要内容,如果未能解决你的问题,请参考以下文章