gpt4 book ai didi

ios - 刷新后台运行的应用程序状态

转载 作者:行者123 更新时间:2023-11-29 00:23:11 26 4
gpt4 key购买 nike

我有音乐播放器应用程序,当应用程序进入后台时,它会在锁定屏幕上显示音乐控件,在我的例子中,当前正在播放电台艺术家和歌曲。我使用以下内容:

- (void)applicationWillResignActive:(UIApplication *)application {
[[PlayerManager sharedInstance] setupInfoForLockerScreen];
}

-(void)setupInfoForLockerScreen{

MPNowPlayingInfoCenter *infoCenter = [MPNowPlayingInfoCenter defaultCenter];
NSString *songName = self.currentPlaylist.lastItem.track.song.length > 0 ? self.currentPlaylist.lastItem.track.song : @"";
NSString *artistName = self.currentPlaylist.lastItem.track.artist.length > 0 ? self.currentPlaylist.lastItem.track.artist : @"";
infoCenter.nowPlayingInfo = @{
MPMediaItemPropertyTitle: self.currentPlaylist.title,
MPMediaItemPropertyArtist: songName.length > 0 && artistName.length > 0 ? [NSString stringWithFormat:@"%@ - %@", songName, artistName] : @"",
MPMediaItemPropertyPlaybackDuration: @(0)
};
}

问题是,当数据更改并且下一首歌曲将在广播中播放时,我如何让我的应用程序自行刷新? applicationWillResignActive 我猜只在应用最初进入后台时调用一次。

最佳答案

MPMusicPlayerController 类有一些方法和事件来帮助实现这一点。

首先,您需要告诉您的应用程序监听 MPMusicPlayerControllerNowPlayingItemDidChangeNotification 事件:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNowPlayingItemChangedEvent:) name:MPMusicPlayerControllerNowPlayingItemDidChangeNotification object:self.myMusicPlayer];

这会注册一个事件处理程序,每当当前播放的歌曲发生变化时就会调用该事件处理程序。

然后调用 MPMusicPlayerController 上的 beginGeneratePlaybackNotifications 方法,告诉它开始向您发送播放通知。

[self.myMusicPlayer beginGeneratingPlaybackNotifications];

您可以根据需要调用 beginGeneratePlaybackNotificationsendGeneratePlaybackNotifications 来控制何时需要收到通知。

然后创建事件处理程序。这是每次 MPMusicPlayerControllerNowPlayingItemDidChangeNotification 触发时都会调用的方法:

- (void)handleNowPlayingItemChangedEvent:(NSNotitication*)notification
{
// Update the lock screen info here
}

现在,只要当前播放的歌曲发生变化,您的事件处理程序就会被调用,您可以更新正在播放的信息。

关于ios - 刷新后台运行的应用程序状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43797669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com