背景音频 - 锁定屏幕上的图像
Posted
技术标签:
【中文标题】背景音频 - 锁定屏幕上的图像【英文标题】:Background Audio - Image on Lock Screen 【发布时间】:2011-12-18 20:43:04 【问题描述】:有一种方法可以将图像添加到背景音频的锁定屏幕,同时设置曲目和艺术家名称。在 WWDC 2011 的视频中也提到了它,但没有具体的内容。我在文档中到处找,找不到。我知道这是一个 ios5 唯一的东西,而 Spotify 的最新版本有这个功能。有谁知道他们可以为我指明正确的方向吗?
谢谢你, 马修
【问题讨论】:
【参考方案1】:这是我为你找到的答案:
(1) 您必须处理远程控制事件。你不能成为现在 播放应用程序,除非你这样做。 (见AudioMixer (MixerHost) sample) code。)
(2) 设置正在播放信息:
MPNowPlayingInfoCenter *infoCenter = [MPNowPlayingInfoCenter defaultCenter];
infoCenter.nowPlayingInfo =
[NSDictionary dictionaryWithObjectsAndKeys:@"my title", MPMediaItemPropertyTitle,
@"my artist", MPMediaItemPropertyArtist,
nil];
这与您用来播放音频的 API 或 视频。
【讨论】:
锁屏图片怎么设置? 别忘了#import <MediaPlayer/MediaPlayer.h>
【参考方案2】:
根据上面迈克尔斯的回答,只需附加
@MPMediaItemPropertyArtwork: [[MPMediaItemArtwork alloc] initWithImage:[UIImage ...]]
到 nowPlayingInfo 字典
可用键的完整选项是...
// MPMediaItemPropertyAlbumTitle
// MPMediaItemPropertyAlbumTrackCount
// MPMediaItemPropertyAlbumTrackNumber
// MPMediaItemPropertyArtist
// MPMediaItemPropertyArtwork
// MPMediaItemPropertyComposer
// MPMediaItemPropertyDiscCount
// MPMediaItemPropertyDiscNumber
// MPMediaItemPropertyGenre
// MPMediaItemPropertyPersistentID
// MPMediaItemPropertyPlaybackDuration
// MPMediaItemPropertyTitle
【讨论】:
【参考方案3】:要使控件正常工作....
- (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 设备,不适用于模拟器
【讨论】:
以上是关于背景音频 - 锁定屏幕上的图像的主要内容,如果未能解决你的问题,请参考以下文章
Xcode swift - 背景模式 - 锁定时AVPlayer中的音频