【问题标题】:Unable to get Album Art from Spotify in Objective C using kMRMediaRemoteNowPlayingInfoArtworkData无法使用 kMRMediaRemoteNowPlayingInfoArtworkData 从 Objective C 中的 Spotify 获取专辑封面
【发布时间】:2021-03-18 14:45:55
【问题描述】:

我正在调整一个分叉的 TouchBar 应用程序,该应用程序在 Mac TouchBar 上显示小部件,并试图让专辑封面显示在 NowPlaying 小部件上。这是project

目前,我遇到了这段代码的问题:

- (void)updateInfo
{
    MRMediaRemoteGetNowPlayingInfo(dispatch_get_main_queue(),
        ^(NSDictionary *info)
        {
            NSString *album = [info objectForKey:kMRMediaRemoteNowPlayingInfoAlbum];
            NSString *artist = [info objectForKey:kMRMediaRemoteNowPlayingInfoArtist];
            NSString *title = [info objectForKey:kMRMediaRemoteNowPlayingInfoTitle];
            NSData *artworkData = [info objectForKey:kMRMediaRemoteNowPlayingInfoArtworkData];
        
        NSImage *albumart = nil;
        if (nil != artworkData && ![artworkData isEqual:[NSNull null]])
        {
            albumart = [[NSImage alloc] initWithData:artworkData];
        }
        
        if (nil != albumart)
        {
            self.appIcon = albumart;
        }
        
        if (self.album != album || self.artist != artist || self.title != title || self.albumArt != albumart)
        {
            self.album = album;
            self.artist = artist;
            self.title = title;
            self.albumArt = albumart;

            [[NSNotificationCenter defaultCenter]
                postNotificationName:NowPlayingInfoNotification
                object:self];
        }
    });
}

我遇到的主要问题是专辑封面数据仅在歌曲开始后显示大约半秒,然后消失。我的理论是,使用 kMRMediaRemoteNowPlayingInfoArtworkData 来获取艺术品数据是错误的,但我可能是错的。

【问题讨论】:

    标签: objective-c macos spotify albumart macbookpro-touch-bar


    【解决方案1】:

    发现如果从通知中心拉出,Spotify 和 Music 不会立即更新他们的专辑封面数据。解决办法是加一个50ms左右的延迟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多