背景音频 - 锁定屏幕上的图像

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 设备,不适用于模拟器

【讨论】:

以上是关于背景音频 - 锁定屏幕上的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何播放可以通过 iPhone 上的屏幕锁定按钮关闭的音频

如何在屏幕锁定或最小化浏览器期间禁用移动设备上的网页音频?

Xcode swift - 背景模式 - 锁定时AVPlayer中的音频

在 iPad 锁定屏幕(背景)上显示 AVAudioplayer 持续时间和经过时间

将图像设置为锁定屏幕和常规屏幕上的背景

iOS PWA 后台音频支持