Sonos专辑的艺术大小在演示地图



有人能解释一下如何配置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 .

最新更新