0

有人可以解释如何配置 Sonos 演示地图以通过 pmap 调整 ArtSize URI。我们的基本网址是:

http://....../load_albumart.php?album_id=12&size=200

例如,我不明白如何配置 pmap 以替换 600 中的 200。

4

1 回答 1

2

专辑封面的 PresentationMap 就像一个正则表达式。当控制器想要一个 200x200 的图像时,它将搜索albumArtUri元素并将您配置为 size 的字符串替换substitution

在您的情况下,您有基于您的示例的这些 URL:

然后,您的演示图将识别每个分辨率的替换规则。在您的情况下,类似于:

<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>

并且包含 an 的默认 SMAPI 响应albumArtUri将包含默认大小,如下所示:

<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),则控制器将使用演示地图加载最高分辨率的图像,通过替换控制器想要的分辨率(标识为节点中的size属性)以及(或)在节点中sizeEntry的分辨率。trackMetadatamediaMetadataalbumArtUri

Sonos 开发者网站上有一个简短的教程,其中包含更多详细信息。

此外,虽然我知道您可能使用 200 和 600 作为示例分辨率,但请注意,Sonos 要求一组特定的分辨率(sizeEntry具有特定属性的元素size)在各种控制器平台上效果最佳。本教程中描述了这些分辨率。

尽管您可能不会在 Sonos 的首选列表中提供所有分辨率,但控制器将采用配置中的下一个最大尺寸。例如,Sonos 要求提供 180x180 的图像。在此示例中,控制器将选择200像素配置作为 180 以上的下一个最高分辨率。对于 300x300 和 600x600,控制器将使用size="600" sizeEntry.

于 2015-09-28T19:23:56.903 回答