1

HLS を使用したライブ ラジオ ストリームがあり、曲の再生中にトラック/アーティスト情報を表示したいと考えています。

API ドキュメントと質問ストリームから理解できる限り、hasOutOfBandMetadata が true に設定されている場合、HLS に対してhasOutOfBandMetadata と getStreamingMetadataを呼び出す必要があります。

返される MIME タイプは「application/vnd.apple.mpegurl」です。

getMetaData はチャネルのリストを返します。ここで、次のようなもので各チャネルを構築します

return new mediaMetadata
{
    id = string.Format("{0}:{1}", Prefix, (string)channel["id"]),
    title = (string)channel["title"],
    itemType = itemType.stream,
    mimeType = "application/vnd.apple.mpegurl",
    onDemand = false,
    liveNow = true,
    Item = new streamMetadata
    {
        currentShow = "Test title",
        currentHost =  "Someone"
    }
};

getMediaMetadata が返されます

return new getMediaMetadataResponse
{
    getMediaMetadataResult = new getMediaMetadataResponseGetMediaMetadataResult
    {
        Items = new object[] {
            new streamMetadata
            {
                title = (string)mediaElement["title"],
                hasOutOfBandMetadata = true,
                currentShow =  "Test",
                currentShowId =  "MKDF24444",
                description = "this is the description",
                hasOutOfBandMetadataSpecified = true
            }
        },
        ItemsElementName = new[] { ItemsChoiceType.streamMetadata }
    }
};

この構成では、getStreamingMetadata への呼び出しが表示されません。

ありがとう

4

1 に答える 1

0

ここでの問題は、getMetdata 応答で実際に streamMetadata を返す必要があることだと思います (getMediaMetadata 応答だけでなく)。例えば...

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getMetadataResponse xmlns="http://www.sonos.com/Services/1.1">
      <getMetadataResult>
        <index>0</index>
        <count>3</count>
        <total>3</total>
        <mediaMetadata>
          <id>sta00001</id>
          <title>LIVE!!!! In NYC!!!!!!!!</title>
          <mimeType>audio/x-scpls</mimeType>
          <itemType>stream</itemType>
          <streamMetadata>
            <logo>http://example.com/sta00003.png</logo>
            <currentHost>Donna Summer</currentHost>
            <currentShow>Advanced D&D</currentShow>
          </streamMetadata>
        </mediaMetadata>        
        <mediaMetadata>
          <id>sta00002</id>
          <title>The Cheap Seats</title>
          <mimeType>audio/x-mpegurl </mimeType>
          <itemType>stream</itemType>
          <streamMetadata>
            <currentShow>The New Afternoon Show</currentShow>
          </streamMetadata>
        </mediaMetadata>
        <mediaMetadata>
          <id>sta00003</id>
          <title>Carol Burnett: The 'Fresh Air' Interview</title>
          <mimeType>audio/x-ms-wma</mimeType>
          <itemType>stream</itemType>
          <streamMetadata>
            <currentHost>Terry Gross</currentHost>
              <currentShow>Fresh Air</currentShow>
              <logo>http://example.com/sta00003.png</logo>
          </streamMetadata>
        </mediaMetadata>
      </getMetadataResult>
    </getMetadataResponse>
  </soap:Body>
</soap:Envelope>
于 2016-04-18T18:56:50.603 に答える