Sonos: создайте сеанс воспроизведения, который автоматически заканчивается после завершения списка воспроизведения. Не повторять - PullRequest
0 голосов
/ 26 февраля 2020

Когда я создаю сеанс воспроизведения и загружаю дорожку / список воспроизведения с помощью loadStreamUrl, этот список воспроизведения повторяется с самого начала после достижения последней песни. Вместо этого я хочу, чтобы он остановился в конце.

Я попытался найти свойство, подобное playOnComplete (полезная нагрузка loadStreamUrl), которое запускает воспроизведение автоматически после буферизации дорожки, просто для завершения воспроизведения после дорожки

Я также пытался использовать playback->setPlayModes, чтобы запретить повторение, но это просто игнорируется.

{
    "playModes": {
       "repeat": false
    }
  }

Я знаю, что это возможно путем настройки обратного вызова события и обработки События PlayStatus, но я ищу простое решение «запустить и забыть».

1 Ответ

0 голосов
/ 28 февраля 2020

Команда loadStreamUrl предназначена для потокового радио. Поскольку вы воспроизводите плейлист, вы должны использовать loadCloudQueue.

Используйте loadCloudQueue с mediaUrl для track вместо SMAPI MusicObjectId, если вы не хотите настраивать сервер SMAPI. Подробнее см. loadCloudQueue и Воспроизведение звука (облачная очередь) .

В качестве альтернативы, вы можете попробовать недокументированную команду loadQueue. loadQueue работает как loadCloudQueue, но не требует облачной очереди. Чтобы воспроизвести трек без облачной очереди, отправьте следующие вызовы:

  1. createSession
  2. loadQueue (описано ниже)
  3. skipToItem

loadQueue

Инициализирует очередь Sonos с пользовательскими метаданными и политиками воспроизведения. Используйте эту команду с skipToItem, чтобы отправить трек игроку. Игрок прекращает воспроизведение в конце дорожки.

Параметры

Имя | Тип | Описание

metadata | container | Контейнерные метаданные, описывающие очередь. Это может быть запрограммированная радиостанция, альбом, список воспроизведения и т. Д. c.

policies | playbackPolicy | Политики воспроизведения для сеанса.

Примеры запросов

POST [base URL]/groups/{groupId}/playbackSession
{...}

POST [base URL]/playbackSessions/{sessionId}/playbackSession/queue
{...}

POST [base URL]/playbackSessions/{sessionId}/playbackSession/skipToItem
{...}

См. Список API управления для базового URL.

...