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

如何防止Alexa技能在锁屏时超时

Alexa移动应用锁屏后长播报中断的解决办法

问题根因

你碰到的情况核心在于:Alexa移动应用对实时TTS播报和预生成音频的系统资源策略不同。预生成音频会触发系统的媒体播放模式,锁屏后系统会维持音频输出;但实时TTS属于临时语音响应,锁屏后系统为节省资源会自动中断这类非媒体类的音频播放。

可行方案

1. 用AudioPlayer播放预生成音频(推荐)

既然预生成音频不受锁屏影响,最直接的解决方式是把2-3分钟的长内容提前转成音频文件(可通过AWS Polly生成),然后在Lambda里使用AudioPlayer指令播放,而非用speak做实时TTS。

Python SDK代码示例:

from ask_sdk_core.dispatch_components import AbstractRequestHandler
from ask_sdk_core.utils import is_intent_name
from ask_sdk_core.handler_input import HandlerInput
from ask_sdk_model.interfaces.audioplayer import PlayDirective, PlayBehavior, AudioItem, Stream

class LongContentIntentHandler(AbstractRequestHandler):
    def can_handle(self, handler_input):
        return is_intent_name("LongContentIntent")(handler_input)
    
    def handle(self, handler_input):
        # 替换为你存储在S3或CDN的音频文件地址
        audio_url = "https://your-storage-url/long-content.mp3"
        
        play_directive = PlayDirective(
            play_behavior=PlayBehavior.REPLACE_ALL,
            audio_item=AudioItem(
                stream=Stream(
                    url=audio_url,
                    token="unique-content-token",
                    offset_in_milliseconds=0
                )
            )
        )
        
        handler_input.response_builder.add_directive(play_directive)
        return handler_input.response_builder.response

2. SDK层面无法控制手机锁屏超时

目前Alexa Skill SDK没有提供任何API能直接控制用户手机的锁屏设置或阻止屏幕变暗——这属于手机系统级权限,第三方应用(包括Alexa)无法绕过系统设置直接干预。

3. 引导用户调整应用权限

虽然不能通过SDK强制,但可以在技能中提示用户开启Alexa应用的后台音频权限:

  • iOS:进入「设置」→「Alexa」,开启「后台App刷新」和「音频」权限
  • Android:进入「设置」→「应用」→「Alexa」→「权限」,开启「后台音频」,同时将Alexa加入电池优化豁免名单

总结

最靠谱的解决办法是把长播报内容转成预生成音频,用AudioPlayer播放,这样就能和其他媒体内容一样,在锁屏后持续播放。SDK无法直接控制锁屏超时,只能引导用户调整系统或应用的相关设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:30:52