0

有什么方法可以直接使用“trackID”启动“站”吗?现在我必须使用“搜索”查询来搜索 Station Factory。使用搜索查询的第一个结果,我将返回的结果设置为“源”。这就是我能够将曲目作为电台播放的方式。谢谢。

4

1 回答 1

2

正如你所说,你可以通过这种方式搜索轨道并获得车站工厂。例如,这个查询:

query {
  search(query:"Let Me by Zayn", types:[SF], pagination: {limit: 1}) {
    items {
      ... on StationFactory {
        name
        id
      }
    }
  }
}

返回此结果:

{
  "data": {
    "search": {
      "items": [
        {
          "name": "Let Me",
          "id": "SF:21586:35686886"
        }
      ]
    }
  }
}

通过包含types:[SF]search参数中,结果仅限于“站工厂”。电台工厂(请参阅文档中的“电台和电台工厂” )可用于开始电台播放(请参阅setSource 此处的信息)。

一个类似但略有不同的路径是搜索曲目(请注意,我们现在指定types:[TR]而不是types:[SF]):

query {
  search(query:"Let Me by Zayn", types:[TR], pagination: {limit: 1}) {
    items {
      ... on Track {
        name
        artist {
          name
        }
        stationFactory {
          id
        }
      }
    }
  }
}

返回:

{
  "data": {
    "search": {
      "items": [
        {
          "name": "Let Me",
          "artist": {
            "name": "ZAYN"
          },
          "stationFactory": {
            "id": "SF:21586:35686886"
          }
        }
      ]
    }
  }
}

使用types:[TR]. 具体来说,某些轨道不会有 stationFactory ID。绝大多数轨道都有 stationFactory ID,所以这不应该是主要的限制因素,但在这里进行空检查很重要。

最后,如果您已经知道曲目 ID,则可以使用方便的entity查询来查找该曲目的所有关联元数据。这里我们拉出站厂ID:

query {
  entity(id: "TR:35686886") {
    ... on Track {
      stationFactory {
        id
      }
    }
  }
}

返回:

{
  "data": {
    "entity": {
      "stationFactory": {
        "id": "SF:21586:35686886"
      }
    }
  }
}
于 2020-11-06T20:08:15.110 回答