diff --git a/src/Sonos.Base/Metadata/Item.cs b/src/Sonos.Base/Metadata/Item.cs index 63a840c..c303de1 100644 --- a/src/Sonos.Base/Metadata/Item.cs +++ b/src/Sonos.Base/Metadata/Item.cs @@ -43,7 +43,7 @@ public class Item public VirtualLineIn? VitualLineIn { get; set; } [XmlElement("streamContent", Namespace = "urn:schemas-rinconnetworks-com:metadata-1-0/")] - public StreamContent? StreamContent { get; set; } + public string? StreamContent { get; set; } [XmlElement("desc", Namespace = "urn:schemas-rinconnetworks-com:metadata-1-0/", Form = System.Xml.Schema.XmlSchemaForm.Qualified)] public DidlDesc? Desc { get; set; } diff --git a/src/Sonos.Base/Metadata/StreamContent.cs b/src/Sonos.Base/Metadata/StreamContent.cs deleted file mode 100644 index a239910..0000000 --- a/src/Sonos.Base/Metadata/StreamContent.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Sonos.Base.Metadata; - -public class StreamContent -{ - -} \ No newline at end of file diff --git a/tests/Sonos.Base.Tests/Metadata/DidlSerializerTests.cs b/tests/Sonos.Base.Tests/Metadata/DidlSerializerTests.cs index 11dd865..1005940 100644 --- a/tests/Sonos.Base.Tests/Metadata/DidlSerializerTests.cs +++ b/tests/Sonos.Base.Tests/Metadata/DidlSerializerTests.cs @@ -56,4 +56,30 @@ public void DeserializeMetadata_SonosPlaylist_ParsesDescElement() Assert.Equal("cdudn", item?.Desc?.Id); Assert.Equal("SA_RINCON2311_X_#Svc2311-0-Token", item?.Desc?.Value); } + + private const string xmlRadioStation = @" + + + aac://http://stream.srg-ssr.ch/m/drs3/aacp_96 + ANDRYY - BRUCHPILOT + aacp_96 + object.item + +"; + + [Fact] + public void DeserializeMetadata_SonosRadioStream() + { + var didl = DidlSerializer.DeserializeMetadata(xmlRadioStation); + Assert.NotNull(didl); + Assert.Single(didl.Items); + + var item = didl.Items[0]; + + Assert.Equal("aacp_96", item.Title); + Assert.Equal("ANDRYY - BRUCHPILOT", item.StreamContent); + } } \ No newline at end of file