【发布时间】:2012-11-23 20:33:27
【问题描述】:
我目前正在为我的应用程序使用 MPNowPlayingInfoCenter 来显示正在播放的歌曲,但我希望将 HTTP Live Streaming 合并到我的应用程序中,这将在后台出现任意数量的不同轨道。
有没有办法在应用程序处于后台时设置 nowPlayingInfo(在一定时间后调用函数?),即使应用程序在技术上实际上并不在后台运行?
或者有没有办法在我的服务器上使用一个简单的调用来设置正在播放的信息,这将返回正确的信息 - 使用返回字符串或图像的 API 调用?
我知道这是可能的,因为 Songza 已经这样做了,但也许他们已经获得了使用 Apple 的某些私有方法的许可(如果你能做到的话)。
【问题讨论】:
-
如果您使用
AVPlayer类并且您的应用程序的主要目的是播放音乐,那么您将能够在后台运行它,从而在何时更新nowPlayingInfo轨道变了。您需要将“应用程序播放音频”添加到“后台模式”,并创建相应的音频会话。 -
@sooper 那么,如果我设置了一个要在 5 分钟后调用的方法,即使应用程序在后台,它仍然会运行?我发现进程停止并且在应用程序返回前台之前不会调用。当我为音频设置“背景模式”时,会有什么不同吗?我想调用一个完全独立于
AVPlayer的函数。 -
只要
AVPlayer正在播放音乐,您就可以运行其他的东西(计时器、更新现在播放信息等)。 -
@sooper 好吧,很抱歉没有事先尝试过。我认为这只是一个假设,如果应用程序在后台,进程就不会运行。我会试一试的!
-
现在,如果您在后台播放音乐以使其保持活力,Apple 将拒绝您。
标签: objective-c ios background-process avplayer mpnowplayinginfocenter