22

我正在尝试完成的一个很好的例子是在最新版本的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 也采用了这个技巧......),那就太棒了。

任何帮助表示赞赏,谢谢。

4

3 回答 3

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,图标会自动切换到您的应用程序图标。杰出的 !

于 2010-07-09T08:35:34.007 回答
2

这是文档:

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

但是请注意,只有当您的应用程序中有活动的音频会话时,它才会起作用。

我将它与AVAudioSession类别AVAudioSessionCategoryPlayback一起使用,AVAudioPlayer并且“远程控件”仅在我创建了AVAudioSession活动和AVAudioPlayer对象时才起作用。

于 2011-05-06T20:05:34.453 回答
1

如果您使用新的背景音频 api,您的应用程序的控件将发生变化。信息可以在这里找到。特别是关于背景音频的部分。

于 2010-07-07T15:44:37.990 回答