有人能解释一下如何配置Sonos Presentation map来通过pmap调整ArtSize URI吗?我们的基础URL是:
http ://....../load_albumart.php ? album_id = 12,大小= 200
我不明白如何配置pmap以替换600中的200。
用于Album Art的PresentationMap类似于正则表达式。当控制器需要200x200的图像时,它将搜索albumArtUri
元素并替换您配置的大小为substitution
的字符串。
在你的情况下,你有这些url基于你的例子:
- http://.../load_albumart.php?album_id=12&大小= 200
- http://.../load_albumart.php?album_id=12&大小= 600
- http://.../load_albumart.php?album_id=12&大小= XXXX
您的表示映射将识别每个分辨率的替换规则。在您的例子中,像这样:
<PresentationMap type="ArtWorkSizeMap">
<Match>
<imageSizeMap>
<sizeEntry size="200" substitution="size=200"/>
<sizeEntry size="600" substitution="size=600"/>
<sizeEntry size="XXXX" substitution="size=XXXX"/>
</imageSizeMap>
</Match>
</PresentationMap>
包含albumArtUri
的默认SMAPI响应将包含如下默认大小:
<trackMetadata>
<albumId>12</albumId>
<duration>253</duration>
<artistId>artist0001</artistId>
<artist>Saratoga Indiana</artist>
<album>Forgiveness & Gratefulness</album>
<albumArtUri>http://.../load_albumart.php?album_id=12&size=200</albumArtUri>
</trackMetadata>
在这种情况下,如果控制器具有高分辨率显示器(例如Retina或xhdpi),则控制器将使用表示映射来加载最高分辨率图像,该图像通过替换控制器想要的分辨率(由sizeEntry
节点中的size
属性标识)与trackMetadata
(或mediaMetadata
)在albumArtUri
节点中的分辨率来实现。
在Sonos开发者网站上有一个简短的教程,有更多的细节。
另外,虽然我意识到您可能使用200和600作为示例分辨率,但请注意Sonos要求一组特定的分辨率(具有特定size
属性的sizeEntry
元素),这些分辨率在各种控制器平台上工作得最好。这些分辨率在教程中有描述。
虽然您可能不会在Sonos的首选列表中提供所有分辨率,但控制器将在配置中采用下一个最大的尺寸。例如,Sonos要求一个180x180的图像。在本例中,控制器将选择200
像素配置作为180以上的下一个最高分辨率。对于300x300和600x600,控制器将使用size="600"
sizeEntry
.