You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Alexa Skill启动意图中连续播放两个音频文件?

解决Alexa Skill中连续播放两个音频的问题

核心思路

因为Alexa的单次响应仅支持一个AudioPlayer.Play指令,无法直接在Launch Intent中同时发起两个音频的播放请求。正确的做法是分两步衔接:先播放问候音频,待播放完成后触发AudioPlayer.PlaybackFinished事件,在该事件的处理逻辑中启动音频流播放。

具体实现步骤

1. 在Launch Intent中发起问候音频播放

在Launch Intent的处理函数中,仅添加播放问候MP3的AudioPlayer.Play指令,无需额外输出语音(AudioPlayer指令会接管音频通道,语音输出会被忽略)。

以Node.js的ASK SDK为例:

const LaunchRequestHandler = {
  canHandle(handlerInput) {
    return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
  },
  handle(handlerInput) {
    // 替换为你的问候音频公开URL
    const greetingAudioUrl = 'https://your-domain.com/greeting.mp3';
    // 自定义token,用于后续识别该播放任务
    const greetingToken = 'greeting-play-task';

    return handlerInput.responseBuilder
      .addAudioPlayerPlayDirective('REPLACE_ALL', greetingAudioUrl, greetingToken, 0)
      .getResponse();
  }
};

2. 启用AudioPlayer接口并配置事件接收

在Alexa开发者控制台的Skill配置页面:

  • 进入Interfaces选项卡,启用AudioPlayer接口,确保Skill能接收播放状态相关事件。
  • 确认你的Skill后端(Lambda/自定义端点)允许接收AudioPlayer.*类型的请求。

3. 处理PlaybackFinished事件,启动音频流

当问候音频播放完成后,Alexa会向Skill发送AudioPlayer.PlaybackFinished请求。在Skill中添加对应的事件处理器,判断播放token为问候音频的标识后,发起音频流的播放请求。

同样以Node.js ASK SDK为例:

const PlaybackFinishedHandler = {
  canHandle(handlerInput) {
    const request = handlerInput.requestEnvelope.request;
    return request.type === 'AudioPlayer.PlaybackFinished' &&
           request.token === 'greeting-play-task';
  },
  handle(handlerInput) {
    // 替换为你的音频流公开URL(支持HLS/MP3等流式格式)
    const streamUrl = 'https://your-stream-server.com/stream.m3u8';
    const streamToken = 'stream-play-task';

    return handlerInput.responseBuilder
      .addAudioPlayerPlayDirective('REPLACE_ALL', streamUrl, streamToken, 0)
      .getResponse();
  }
};

最后记得将该处理器添加到Skill的请求处理器数组中。

4. 关键注意事项

  • 确保问候音频和音频流的URL均为公开可访问,且符合Alexa的音频格式要求(如MP3比特率128kbps以上、HLS流正确分片等)。
  • 若需处理播放中断(如用户暂停、设备重启),可额外添加AudioPlayer.PlaybackStopped、AudioPlayer.PlaybackStarted等事件的处理器,提升流程健壮性。
  • 建议在实体Alexa设备上测试,部分模拟器对AudioPlayer的事件触发支持有限。

内容的提问来源于stack exchange,提问作者Stefankarlsberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:37:08