6

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

вот мое кодирование для первой песни

$speech  = "playing songs of $artistName"; 

$card = '"card": { 
       "type": "Simple", 
       "title": "Play Audio", 
       "content": "" 
     }'; 
$response = '{ 
     "version" : "1.0", 
     "response" : { 
      "outputSpeech": { 
       "type": "PlainText", 
       "text": "'.$speech.'" 
      }, 
      '.$card.', 
      "directives": [ 
       { 
       "type": "AudioPlayer.Play", 
       "playBehavior": "REPLACE_ALL", 
       "audioItem": { 
        "stream": { 
       "token": "FirstSong", 
       "url": "myUrl", 
       "offsetInMilliseconds": 0 
        } 
       } 
       } 
      ], 
      "shouldEndSession" : true 
     } 
    }'; 

    echo $response; 

, а затем добавить звук к нему, заменив playBehaviour на Епдиеие. Песни добавляются, и каждая песня воспроизводится правильно, но в любой момент времени, если я говорю любую команду, связанную с моим приложением. Alexa не отвечает, и на самом деле это похоже на выход из моего приложения, потому что я должен запустить приложение снова, когда песня играет, чтобы сделать alexa работать с моим приложением.

ответ

1

Вам необходимо обработать события аудиоплеера, описанные here. В частности, в событии AudioPlayer.PlaybackNearlyFinished вы можете вставить следующий звуковой файл в очередь. Обратите внимание, что многие другие события также должны быть реализованы для надлежащего использования пользователями.

+0

Это не про добавление песни .. добавляется песня, но если я хочу начать просить сделать alexa что-то в своем приложении .. это не происходит, потому что директива игры покинула сеанс. Есть ли способ сохранить сессию? –

+0

Нет, пользователь должен перезапустить навык. –