如何在后台启用iPod控件来控制iOS 4中的非iPod音乐?

我试图完成的一个很好的例子是在最新版本的Spotify iPhone应用程序中实现的(潘多拉似乎有相同的function)。

当Spotify在后台时,双击打开“多任务停靠”,ipod控制(播放/暂停,转发等)允许控制Spotify(而不是iPod应用程序)的音乐播放。 另外,当iPhone / iPod touch被locking时,双击会显示类似的播放控制。

如果你不知道我的意思,这里有一篇文章有截图 : http : //www.wired.com/gadgetlab/2010/07/spotify-updated-for-ios4-ready-to-replace-ipod/

在我目前的应用程序中,音乐是从服务器stream式传输的(使用Matt Gallagher的AudioStreamer)。 我已经设法保持音乐播放的背景。 现在,我想将我的回放链接到“多任务停靠”/locking屏幕。

我应该使用[MPMusicPlayerController iPodMusicPlayer] 我应该如何继续?

奖金的问题:如果你能告诉我如何改变我的应用程序图标在“多任务docker”(Spotify拉动这个技巧,以及…),这将是真棒。

任何帮助表示感谢,谢谢。

问题解决了。

总之,要启用远程控制事件,1)使用:

- (void)remoteControlReceivedWithEvent:(UIEvent *)theEvent

和2)把这个是你的视图控制器:

 - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; [self becomeFirstResponder]; } - (BOOL)canBecomeFirstResponder { return YES; } 

我必须赞扬格兰特。 他已经推出了Matt Gallagher的AudioStreamer,使所有的ios4改进(背景audio和遥控器工作)。 你可以在github上find他的源代码和一个工作示例: http : //github.com/DigitalDJ/AudioStreamer

关于图标:一旦你使用beginReceivingRemoteControlEvents ,图标自动切换到你的应用程序图标。 太棒了!

这里是文档:

http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/RemoteControl/RemoteControl.html

但是请注意,只有在应用程序中有活动的audio会话时才能使用。

我用AVAudioSessionAVAudioSessionCategoryPlayback类别和AVAudioPlayer和“远程控制”只有当我AVAudioSession活动和AVAudioPlayer对象创build工作。

如果您正在使用新的背景audioAPI,控件将会改变您的应用程序。 信息可以在这里find。 特别是关于背景audio的部分。