Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Alexa AudioPlayer请求指令不工作_Javascript_Alexa_Alexa Skills Kit_Audio Player - Fatal编程技术网

Javascript Alexa AudioPlayer请求指令不工作

Javascript Alexa AudioPlayer请求指令不工作,javascript,alexa,alexa-skills-kit,audio-player,Javascript,Alexa,Alexa Skills Kit,Audio Player,我正在制作一个音频播放器技能,当我测试技能时,音频会播放,没有错误,但是音频播放器请求,如AudioPlayer.PlaybackStarted、AudioPlayer.playbackstopped diescitives不起作用。我在代码中使用了与Github示例中使用的相同的函数来处理它们 },, }; 你能修好吗?你能修好吗? const AudioPlayerEventHandler = { canHandle(handlerInput) { return handle

我正在制作一个音频播放器技能,当我测试技能时,音频会播放,没有错误,但是音频播放器请求,如AudioPlayer.PlaybackStarted、AudioPlayer.playbackstopped diescitives不起作用。我在代码中使用了与Github示例中使用的相同的函数来处理它们

},,
};

你能修好吗?你能修好吗?
const AudioPlayerEventHandler = {
  canHandle(handlerInput) {
  return 
  handlerInput.requestEnvelope.request.type.startsWith('AudioPlayer.');
  },
  async handle(handlerInput) {
  const {
  requestEnvelope,
  attributesManager,
  responseBuilder
} = handlerInput;
const audioPlayerEventName = requestEnvelope.request.type.split('.')[1];
const {
  playbackSetting,
  playbackInfo,
  audioData,
  timeStamp
} = await attributesManager.getPersistentAttributes();

switch (audioPlayerEventName) {
  case 'PlaybackStarted':
    playbackInfo.token = getToken(handlerInput);
    playbackInfo.index = await getIndex(handlerInput);
    playbackInfo.inPlaybackSession = true;
    playbackInfo.hasPreviousPlaybackSession = true;
    break;
  case 'PlaybackFinished':
    playbackInfo.inPlaybackSession = false;
    playbackInfo.hasPreviousPlaybackSession = false;
    playbackInfo.nextStreamEnqueued = false;
    break;
  case 'PlaybackStopped':
    playbackInfo.token = getToken(handlerInput);
    playbackInfo.index = await getIndex(handlerInput);
    playbackInfo.offsetInMilliseconds = getOffsetInMilliseconds(handlerInput);
    break;
  case 'PlaybackNearlyFinished':
    {
      if (playbackInfo.nextStreamEnqueued) {
        break;
      }

      const enqueueIndex = (playbackInfo.index + 1) % audioData.length;

      if (enqueueIndex === 0 && !playbackSetting.loop) {
        break;
      }

      playbackInfo.nextStreamEnqueued = true;

      const enqueueToken = playbackInfo.playOrder[enqueueIndex];
      const playBehavior = 'ENQUEUE';
      const podcast = audioData[playbackInfo.playOrder[enqueueIndex]];
      const expectedPreviousToken = playbackInfo.token;
      const offsetInMilliseconds = 0;

      responseBuilder.addAudioPlayerPlayDirective(
        playBehavior,
        podcast.url,
        enqueueToken,
        offsetInMilliseconds,
        expectedPreviousToken,
      );
      break;
    }
  case 'PlaybackFailed':
    playbackInfo.inPlaybackSession = false;
    console.log('Playback Failed : %j', handlerInput.requestEnvelope.request.error);
    return;
  default:
    throw new Error('Should never reach here!');
}

return responseBuilder.speak('directive is sent').getResponse();