2015-09-28 88 views

回答

2

AlbumMap for Album Art的工作方式類似於正則表達式。當控制器需要200x200的圖像時,它將搜索albumArtUri元素並將您配置的字符串替換爲substitution的大小。

在你的情況根據你的例子有以下網址:那麼

您呈現映射將確定每個分辨率的替換規則。在你的情況,是這樣的:

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

而且默認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 attribbute在sizeEntry節點中標識)替換爲分辨率trackMetadata(或mediaMetadata)已在albumArtUri節點中。

有一個簡短的tutorial available on the Sonos developer website有更多的細節。另外,儘管我意識到您可能使用200和600作爲示例分辨率,但請注意,Sonos要求提供在各種控制器平臺上效果最佳的特定分辨率(sizeEntry元素,具有特定的size屬性)組合。這些解決方案在教程中進行了介紹。

儘管您可能不會在Sonos的首選列表中提供所有分辨率,但控制器將在配置中採用下一個最大尺寸。例如。 Sonos要求提供180x180的圖像。在此示例中,控制器將選擇200像素配置作爲高於180的下一個最高分辨率。對於300x300和600x600,控制器將使用size="600"sizeEntry