Alexa - выполнять фоновые задачи во время audioPlayer.Play - PullRequest
0 голосов
/ 05 июня 2018

Как можно выполнять какие-либо фоновые задачи, когда Alexa воспроизводит что-то с audioPlayer.Play?

Ниже воспроизводится аудиопоток, но мне нужно выполнять другие задачи в фоновом режиме без вмешательства, покапоток играет.Я знаю, что это возможно, потому что другие Навыки могут сделать это.

var handlers = {
  'LaunchRequest': function() {
    this.emit('Play');        
  },

  'Play': function() {   

    this.response.speak('Sure.').
    audioPlayerPlay(
        'REPLACE_ALL', 
        stream.url, 
        stream.url, 
        null, 
        0);

    this.emit(':responseReady');
    }
}

Кто-нибудь знает или имеет какие-либо предложения?Из того, что я вижу, когда он начинает воспроизводить поток, я не могу заставить его что-либо делать, пока я не прерву поток, чтобы командовать другим намерением?

1 Ответ

0 голосов
/ 06 июня 2018

Алекса имеет несколько встроенных запросов, которые она отправляет вашему навыку на протяжении всего жизненного цикла аудиопотока именно для этой цели!Они следующие:

  1. AudioPlayer.PlaybackStarted - отправляется, когда начинается воспроизведение нового аудиоэлемента.
  2. AudioPlayer.PlaybackNearlyFinished - отправляется, когда аудиоэлемент почти закончился (чаще всего используетсяслужба умений для обработки очередей следующего элемента.)
  3. AudioPlayer.PlaybackFinished - отправляется, когда заканчивается звуковой элемент.

Также есть пара других, о которых вы можете прочитать здесь , но я предполагаю, что они вполне подойдут для того, что вам нужно.

Чтобы использовать их, просто установите обработчики в своем коде для любого из этих запросов и выполняйте любые задачи, которые вам нужнытуда!

Я совсем не знаю node.js, но, думаю, конечный результат будет выглядеть примерно так:

var handlers = {
  'LaunchRequest': function() { /* your launch request code from above */ }
  'Play': function() { /* your play code from above */ }
  'AudioPlayer.PlaybackNearlyFinished': function() { 
    // Perform any background tasks here
  }
}
...