iOS 10.3 Apple在MediaPlayer框架中发布了新的API,为希望播放存储在Apple Music / iTunes Match上的音乐的开发人员带来了更多的控制/力量 . 我在谈论MPMusicPlayerApplicationController的新applicationQueuePlayer和applicationMusicPlayer . 问题当然是多任务处理 . 我'm building basically an alternative to Apple'自己的音乐播放器 . 但是我还需要在播放音乐时执行一些代码(主要是网络连接) . 这些新API需要打开应用程序的背景模式(音频,AirPlay和画中画),因此当用户进入主屏幕时音乐正在播放,但应用程序本身已暂停 .
无论如何,我必须打开背景音乐和背景模式播放音乐 . 但是,当音乐暂停时,我不会使用电池 .
更有趣的是:似乎新API是专为在后台保持活力的应用而设计的,因为在iOS 10.3.3之后通过控制中心更改了音轨并点击了歌曲的名称后系统音乐应用程序被打开而不是我的应用程序 .
想象一下,用户在到达工作岗位之前暂停控制中心的音乐,然后从控制中心恢复音乐 . 我在上班的时候没有电池 .
我的问题是:有没有办法让应用程序保持活动并响应用户采取的操作?
1 回答
“音乐播放器不会影响音乐应用的状态 . 当您的应用移动到后台时,音乐播放器将停止播放当前媒体 . ”
https://developer.apple.com/documentation/mediaplayer/mpmusicplayercontroller/2817540-applicationqueueplayer
systemMusicPlayer将在后台继续,但是你没有访问权限,或者我认为现在(iOS11)有限访问队列 .
我认为你仍然需要使用某种形式的AVPlayer(https://developer.apple.com/documentation/avfoundation/avplayer),如果你想对所发生的事情进行精细控制,那么你需要自己实现所有更新锁定屏幕等的东西 .