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

如何通过Alexa Web API for Games的JavaScript客户端请求打开麦克风及解决权限拒绝问题

解决Alexa Web API for Games调用requestMicrophoneOpen()出现permission-denied的问题

要解决这个权限错误,你需要完成以下几项关键配置和检查:

  • 开启技能麦克风权限
    登录Alexa开发者控制台,找到你的游戏技能:

    1. 进入「权限」页面,找到「麦克风访问」选项并开启;
    2. 在技能的manifest配置中,添加麦克风权限声明:alexa::devices:all:microphone:read,确保技能被授权访问设备麦克风。
  • 维持活跃的Alexa会话
    调用requestMicrophoneOpen()必须在活跃的Alexa会话中进行:

    • 如果你是通过自定义音频播放(而非Alexa原生的outputSpeech),要确保之前的Alexa响应设置了shouldEndSession: false,以此维持会话不中断;
    • 不能在会话结束后调用该方法,否则会直接触发权限拒绝。
  • 确保调用时机正确
    必须等你的自定义MP3音频完全播放结束后再调用requestMicrophoneOpen(),可以通过监听音频元素的ended事件来触发:

    const audioElement = document.getElementById('your-audio-element');
    audioElement.addEventListener('ended', () => {
      // 音频播放完毕后请求打开麦克风
      alexaClient.voice.requestMicrophoneOpen()
        .then(() => console.log('麦克风已打开'))
        .catch(err => console.error('请求失败:', err));
    });
    
  • 验证交互模型配置
    确保你的技能交互模型中定义了需要玩家回应的意图,Alexa需要明确知道要监听的语音指令,否则可能会拒绝麦克风请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:12:40