背景音频 - 锁屏上的图像

时间:2011-12-18 20:43:05

标签: iphone ios audio background ios5

有一种方法可以将图像添加到背景音频的锁定屏幕,同时设置曲目和艺术家名称。在WWDC 2011视频中也提到过,但没有具体的内容。我在文档中无处不在,无法找到它。我知道它只是iOS5的一部分,Spotify的最新版本具有此功能。有谁知道他们在哪里可以指出我正确的方向?

谢谢你, 马修

3 个答案:

答案 0 :(得分:10)

以下是我找到的答案:

  

(1)您必须处理远程控制事件。你不能成为现在   除非你这样做,否则玩app。 (参见AudioMixer (MixerHost) sample) code。)

     

(2)设置正在播放信息:

MPNowPlayingInfoCenter *infoCenter = [MPNowPlayingInfoCenter defaultCenter]; 
infoCenter.nowPlayingInfo = 
    [NSDictionary dictionaryWithObjectsAndKeys:@"my title", MPMediaItemPropertyTitle,
                                               @"my artist", MPMediaItemPropertyArtist,
                                               nil];
  

这与您用于播放音频的API无关   视频。

答案 1 :(得分:3)

根据迈克尔斯的回答,只需附加

@{MPMediaItemPropertyArtwork: [[MPMediaItemArtwork alloc] initWithImage:[UIImage ...]]}

到nowPlayingInfo dict

可用密钥的完整选项是......

// MPMediaItemPropertyAlbumTitle
// MPMediaItemPropertyAlbumTrackCount
// MPMediaItemPropertyAlbumTrackNumber
// MPMediaItemPropertyArtist
// MPMediaItemPropertyArtwork
// MPMediaItemPropertyComposer
// MPMediaItemPropertyDiscCount
// MPMediaItemPropertyDiscNumber
// MPMediaItemPropertyGenre
// MPMediaItemPropertyPersistentID
// MPMediaItemPropertyPlaybackDuration
// MPMediaItemPropertyTitle

答案 2 :(得分:1)

使控制工作....

- (BOOL)canBecomeFirstResponder {

return YES;

}

- (void)viewDidAppear:(BOOL)animated {

[super viewDidAppear:animated];

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

[self becomeFirstResponder];

}

- (void)viewWillDisappear:(BOOL)animated {

[[UIApplication sharedApplication] endReceivingRemoteControlEvents];

[self resignFirstResponder];

[super viewWillDisappear:animated];

}

- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {

if (receivedEvent.type == UIEventTypeRemoteControl) {

switch (receivedEvent.subtype) {

case UIEventSubtypeRemoteControlPlay:

[player play];

break;

case UIEventSubtypeRemoteControlPause:

[player pause];

break;

case UIEventSubtypeRemoteControlTogglePlayPause:

if (player.playbackState == MPMoviePlaybackStatePlaying) {

[player pause];

}

else {

[player play];

}

break;

default:

break;

}

}

}

它仅适用于真实的iOS设备,而不适用于模拟器

相关问题