我想要完成的一个很好的例子是在 Spotify iPhone应用程序的最新版本中实现的(Pandora似乎具有相同的功能)。
当Spotify在后台时,双击会打开“多任务停靠”,其中ipod控件(播放/暂停,转发等)允许控制Spotify(而不是ipod应用程序)的音乐播放。此外,当iphone / ipod touch被锁定时,双击会显示类似的播放控件。
如果你不知道我的意思,这篇文章有截图: http://www.wired.com/gadgetlab/2010/07/spotify-updated-for-ios4-ready-to-replace-ipod/
在我目前的应用程序中,音乐是从服务器流式传输的(使用Matt Gallagher的AudioStreamer)。我设法让音乐在后台播放。现在,我想将我的播放链接到“多任务停靠”/锁定屏幕。
我应该使用[MPMusicPlayerController iPodMusicPlayer]
吗?我该怎么办?
奖金问题:如果你能告诉我如何在“多任务停靠”中将ipod图标更改为我的应用程序图标(Spotify也提取了这个技巧......),这真是太棒了。
感谢任何帮助,谢谢。
答案 0 :(得分:31)
问题解决了。
简而言之,要启用远程控制事件,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改进(背景音频和遥控器工作)。你可以在github上找到他的资源以及一个工作样本:http://github.com/DigitalDJ/AudioStreamer
关于图标:使用beginReceivingRemoteControlEvents
后,图标会自动切换到您的应用图标。太棒了!
答案 1 :(得分:2)
这是文档:
但请注意,只有在应用程序中有活动的音频会话时它才会起作用。
我正在AVAudioSession
使用AVAudioSessionCategoryPlayback
类别,而AVAudioPlayer
和“遥控器”仅在AVAudioSession
有效AVAudioPlayer
个对象时才能使用创建。
答案 2 :(得分:1)
如果您使用新的背景音频api,控件将根据您的应用进行更改。可以找到信息here。特别是有关背景音频的部分。