pre*_*io2 2 iphone itunes itunes-store
我正在编写一个音乐参考应用程序,并且每张专辑(从last.fm中提取)都想链接到ITMS(如果专辑在商店中).
iTunes链接制作者网络工具http://apple.com/itunes/linkmaker/非常适合获取已知专辑的链接,但我需要从我的应用程序中以编程方式访问它.
这个NSLog博客文章是2003年的,但最近在另一个问题中被引用,似乎提供了迄今为止我遇到的唯一解决方案,建议提交查询:
phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?
在它之前加上"itms://",链接将在iTunes中运行,在它之前加上"http://",链接将在Camino中运行(Safari有时会回乱格式错误的XML错误).
重要的标签如下:
- songTerm - 歌名
- artistTerm - 艺术家姓名
- albumTerm - 专辑名称
- composerTerm - 作曲家姓名
- 术语 - 所有领域
建议是使用http://而不是itms://服务器将返回结果的XML文档,而不是打开iTunes,但无论哪种方式,我都会直接发送到iTunes.
是否可以取回结果列表?
我正在使用LinkMaker获取有关我正在播放的歌曲的iTunes详细信息.为此,我发现LinkMaker能够一次返回json数据并返回1个结果.
我正在使用此URL来执行我的查询:
以下是您需要提供的参数:
> country : store country term : could
> contains artist name, song name, album
> media : music
Run Code Online (Sandbox Code Playgroud)
例如,如果您想通过"U2"获得名为"One"的歌曲的详细信息,请输入正确的URL:
然后你会收到这样的json数据:
{
"resultCount":1,
"results": [
{"wrapperType":"track", "mediaType":"song", "artistName":"U2", "itemParentName":"Achtung Baby", "itemParentCensoredName":"Achtung Baby", "itemCensoredName":"One", "itemName":"One", "artistLinkUrl":"http://itunes.apple.com/us/artist/u2/id78500?uo=4", "artworkUrl60":"http://a1.phobos.apple.com/us/r1000/009/Features/32/9a/60/dj.mfynlttx.60x60-50.jpg", "artworkUrl100":"http://a1.phobos.apple.com/us/r1000/009/Features/32/9a/60/dj.mfynlttx.100x100-75.jpg", "country":"USA", "currency":"USD", "discCount":1, "discNumber":1, "itemExplicitness":"notExplicit", "itemLinkUrl":"http://itunes.apple.com/us/album/one/id368713?i=368617&uo=4", "itemPrice":"1.29000", "itemParentExplicitness":"notExplicit", "itemParentLinkUrl":"http://itunes.apple.com/us/album/one/id368713?i=368617&uo=4", "itemParentPrice":"9.99000", "previewUrl":"http://a1.phobos.apple.com/us/r1000/019/Music/b6/8c/c5/mzm.epegonxg.aac.p.m4a", "primaryGenreName":"Rock", "trackCount":12, "trackNumber":3, "trackTime":276042}]
}
Run Code Online (Sandbox Code Playgroud)
然后,您需要解码这些JSON数据.
NSDictionary *jsonResultsParsed = [jsonResults JSONValue];
Run Code Online (Sandbox Code Playgroud)
最后得到你想要的东西:
NSDictionary *songDetailsDict = [[jsonResultsParsed objectForKey:@"results"] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
如果要确定用户的国家/地区,则需要使用其区域设置确定其国家/地区,以下是我使用的代码:
- (NSString *)getUserCountry
{
NSLocale *locale = [NSLocale currentLocale];
return [locale objectForKey: NSLocaleCountryCode];
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
蒂埃里
编辑:最后一个文档可用:
| 归档时间: |
|
| 查看次数: |
3986 次 |
| 最近记录: |