Alexa音乐流播放时如何给intent添加可触发的自定义utterance
问题结论
你不能为AMAZON.RepeatIntent这类音频播放相关的内置intent添加可在流播放场景下触发的自定义utterance,这是Alexa平台的固定限制,没有修改空间。
原因说明
当你的Skill调用handlerInput.responseBuilder.addAudioPlayerPlayDirective('REPLACE_ALL', url, '1', 0, null, stream.metadata);启动音频流播放后,Alexa会自动进入全局音频播放控制上下文,这个状态下只有亚马逊官方预设的内置intent触发短语才会被识别并转发到你的Skill,你在开发者后台给这些内置intent添加的自定义utterance仅在Skill处于前台交互状态(无音频播放、用户正直接和Skill对话)时生效,播放状态下完全不生效。
可行替代方案
- 你可以自行创建一个自定义intent,配置你需要的触发短语,要求用户触发时带上你的Skill名称,比如你的Skill叫「本地电台」,用户说「Alexa,告诉本地电台重复上一段」就可以触发对应的自定义逻辑,这种请求会绕过全局播放控制规则,直接路由到你的Skill处理。
- 如果只是需要更多重复类的触发语,优先使用亚马逊官方已经预设好的RepeatIntent触发短语,这些短语在播放状态下都可以直接触发,不需要额外配置。
补充注意点
这个规则适用于所有和AudioPlayer播放控制相关的内置intent,包括AMAZON.PauseIntent、AMAZON.NextIntent、AMAZON.PreviousIntent、AMAZON.ShuffleIntent等,所有这类内置intent都无法自定义播放场景下的触发语。
内容的提问来源于stack exchange,提问作者David Copoeru
相关产品推荐
相关产品推荐

