2017-01-12 16 views
5

Tôi đang làm việc trên alexa lần đầu tiên và tôi đang phát triển một ứng dụng âm nhạc. Tôi cần phải thêm nhiều bản nhạc của một nghệ sĩ và chơi nó liên tục. Tôi không thể làm như vậy. Tuy nhiên, một bài hát hoạt động bình thường nhưng không thể thêm và chơi nhiều bài hát.Cách thêm nhiều bản nhạc vào luồng trong alexa?

Đây là mã của tôi,

$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 
     } 
    }'; 

Trả lời

1

Thực hiện theo các doc trên: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/custom-audioplayer-interface-reference#playbacknearlyfinished-request

và sau đó làm điều này để enqueue bài hát thứ hai

Trong PHP, cách bạn xử lý các yêu cầu khác, bạn cũng có thể xử lý AudioRequest. Ví dụ.

$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; 
} 

Đây là cách bạn có thể xử lý tất cả AudioRequest.

1

Bạn cần phải chờ đợi cho các yêu cầu AudioPlayer.PlaybackNearlyFinished từ Alexa. Tại thời điểm đó, bạn có thể enqueue bài hát tiếp theo được chơi. Nó sẽ đến gần kết thúc phát lại bản nhạc đang phát.

Thông tin về nó là ở đây:
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/custom-audioplayer-interface-reference#playbacknearlyfinished-request

Khi trả lời bằng văn bản hướng dẫn PlaybackNearlyFinished, hãy chắc chắn rằng:

  • Bạn đặt playBehavior để Enqueue
    này sẽ làm cho bài hát kế tiếp để bắt đầu sau khi kết thúc hiện tại

  • Bạn KHÔNG bao gồm trường outputSpeech
    đầu raSpeech không được phép khi hết phiên. Phiên kết thúc khi luồng đầu tiên bắt đầu phát lại.

bài viết trên blog này mà tôi đã viết đi vào chi tiết hơn về cách tiếp cận để phát triển và thử nghiệm cho giao diện Audioplayer:
https://bespoken.tools/blog/2016/10/10/unit-testing-alexa-skills

+0

Làm thế nào để biết rằng AudioPlayer.PlaybackNearlyFinished đã được kích hoạt trong php? –

+0

Tôi có thể chơi bài hát đầu tiên nhưng không biết phải làm thế nào và phải làm gì để đi thứ hai, thứ ba và vv .. –

+0

Và tôi đang sử dụng ngôn ngữ PHP nên không chắc liệu nó có khả thi trong php hay không. –

Các vấn đề liên quan