2017-01-12 10 views
5

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

Вот мой код,

$response = '{ 
     "version" : "1.0", 

     "response" : { 
      "outputSpeech": { 
       "type": "PlainText", 
       "text": "Playing song for Acon" 
      }, 
      '.$card.', 
      "directives": [ 
       { 
       "type": "AudioPlayer.Play", 
       "playBehavior": "REPLACE_ALL", 
       "audioItem": { 
        "stream": { 
       "token": "track1", 
       "url": "https://p.scdn.co/mp3-preview/9153bcc4d7bef50eb80a809fa34e694f2854e539?cid=null", 
       "offsetInMilliseconds": 0 
        } 
       } 
       } 
      ], 
      "shouldEndSession" : true 
     } 
    }'; 

ответ

1

Выполните описанные выше документ: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/custom-audioplayer-interface-reference#playbacknearlyfinished-request

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

В PHP, как вы обрабатываете другие запросы, вы также можете обрабатывать AudioRequest. Например.

$data  = file_get_contents("php://input"); 
$jsonData = json_decode($data); 

if($jsonData->request->type === "AudioPlayer.PlaybackNearlyFinished") 
{ 
    $response = '{ 
     "version" : "1.0", 
     "response" : { 
      "directives": [ 
       { 
       "type": "AudioPlayer.Play", 
       "playBehavior": "ENQUEUE", 
       "audioItem": { 
        "stream": { 
       "token": "track2", 
       "expectedPreviousToken": "track1", 
       "url": "Your URL", 
       "offsetInMilliseconds": 3 
        } 
       } 
       } 
      ], 
      "shouldEndSession" : true 
     } 
    }'; 
    echo $response; 
} 

Так вы можете справиться со всем звуковым сигналом.

1

Вы должны ждать AudioPlayer.PlaybackNearlyFinished запроса от Alexa. В этот момент вы можете поставить в очередь следующий трек для воспроизведения. Он приблизится к завершению воспроизведения текущей воспроизводимой дорожки.

Информация об этом здесь:
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/custom-audioplayer-interface-reference#playbacknearlyfinished-request

При ответе с директивой к PlaybackNearlyFinished, убедитесь, что:

  • Вы устанавливаете playBehavior в Епдиеие
    Это приведет к следующему треку для запуска после того, как текущий закончится

  • Вы не включаете поле outputSpeech
    outputSpeech не допускается, когда не работает. Сессия заканчивается, когда первый поток начинает воспроизведение.

Этот блог, который я написал переходит в более подробно о подходах к разработке и тестированию для интерфейса AudioPlayer:
https://bespoken.tools/blog/2016/10/10/unit-testing-alexa-skills

+0

Как узнать, что AudioPlayer.PlaybackNearlyFinished был запущен в php? –

+0

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

+0

И я использую язык PHP, поэтому не уверен, возможно ли это в php или нет. –

 Смежные вопросы

  • Нет связанных вопросов^_^