在使用带有GNSDK的findAlbums时遇到一些问题,但识别AlbumAsync非常有效。如果您查看iOS示例代码,您将看到我必须迭代返回的相册的代码与应用程序使用麦克风识别轨道时使用的代码相同。我将此代码附加到showTextSearch(),以便我可以轻松地测试它。此查询会返回十张专辑。
do
{
let musicID = try GnMusicId(user: gnUser, locale: gnLocale, statusEventsDelegate: self)
let responseAlbums = try musicID.findAlbums(withAlbumTitle: "Born To Run", trackTitle: nil, albumArtistName: "Bruce Springsteen", trackArtistName: nil, composerName: nil)
var albums:GnAlbumEnumerator
if (responseAlbums.isKind(of: GnResponseAlbums.self))
{
albums = responseAlbums.albums()
}
else
{
albums = responseAlbums as! GnAlbumEnumerator
}
for a in albums
{
let album = a as! GnAlbum
let coverArtContent = album.coverArt()
let coverArtAsset = coverArtContent?.asset(kImageSizeSmall)
let artistImageContent = album.artist()?.contributor()?.image()
let artistImageAsset = artistImageContent?.asset(kImageSizeSmall);
}
}
catch
{
print("Error")
}
我收到很多专辑数据,但没有专辑封面。我的配置ID对于GNSDK是正确的,据我所知,我的许可证文件是正确的。文档最多也是如此,所以也许我错过了一些东西,但我找不到任何说明为什么findAlbums在识别AlbumAsync时不会返回封面艺术的东西。
在任何情况下,对于十张专辑的每次迭代,coverArtContent和aristImageContent都是nil。我甚至尝试使用trackTitle和trackArtistName更具体无效。
关于为什么会发生这种情况的任何想法?感谢。
答案 0 :(得分:0)
好吧,我弄明白了这个问题。设置musicID后添加此项:
let gnMusicIdStreamOptions = musicID.options()
try gnMusicIdStreamOptions.resultSingle(bEnable: true)
try gnMusicIdStreamOptions.lookupData(lookupData: kLookupDataSonicData, bEnable:true)
try gnMusicIdStreamOptions.lookupData(lookupData: kLookupDataContent, bEnable:true)
try gnMusicIdStreamOptions.preferResultCoverart(bEnable: true)