2017-07-24 16 views
0

我有一个关于Java的AWS拉姆达以下问题:onPlaybackNearlyFinished不起作用

称为“PlaybackNearlyFinished”不工作的意图,又名,不播放音频文件我喂养它。任何人都可以精确地解释为什么这不起作用?

这是我的Java代码:

@Override 
    public SpeechletResponse onPlaybackFinished(SpeechletRequestEnvelope<PlaybackFinishedRequest> 
                 speechletRequestEnvelope) { 
    // logging info("onPlaybackFinished start"); 


    SpeechletResponse response = new SpeechletResponse(); 

    Stream stream = new Stream(); 
    stream.setToken("test mp3"); 
    stream.setUrl("https://ia802508.us.archive.org/5/items/testmp3testfile/mpthreetest.mp3"); 
    stream.setOffsetInMilliseconds(0); 

    AudioItem audioItem = new AudioItem(); 
    audioItem.setStream(stream); 

    PlayDirective playDirective = new PlayDirective(); 
    playDirective.setAudioItem(audioItem); 
    playDirective.setPlayBehavior(PlayBehavior.REPLACE_ALL); 

    List<Directive> directives = new ArrayList<>(); 
    directives.add(playDirective); 
    response.setDirectives(directives); 
    response.setShouldEndSession(true); 
    // logging info("onPlaybackFinished end, return testmp3"); 

    return response; 
    } 

回答

0

几个点的位置:

  1. 你表明了的onPlaybackFinished名称,而它应该是onPlaybackNearlyFinished
  2. 看起来像的方法新的流错过了预期的前一个令牌。它应该等于流的令牌是整理 - requestEnvelope.getRequest().getToken()
  3. 我也使它PlayBehavior.ENQUEUE代替PlayBehavior.REPLACE_ALL,但我不知道在这里......还是尝试

希望它能帮助!