在后台运行计时器 x 秒 [Alexa 技能]

我正在制作一个返回音频但仅返回 x 秒的函数。


如果用户说


为我播放一首歌 x 秒


我正在播放这首歌,但需要在 X 秒后取消。因此,我的计划是在运行音频之前启动计时器 x 秒。然后,一旦计时器到了,就将通知设置为另一个功能,该功能将返回一个新的声音,说您的时间到了。


虽然我需要一种方法来启动后台计时器,但我已经搞定了逻辑。


def start_audio():

    card_title = "Start Audio"

    session_attributes = {}



    sound_url = 'https://s3.amazonaws.com/........mp3'


    speech_output = "<speak><audio src='{}'/> </speak>".format(sound_url)




    should_end_session = False

    return build_response(session_attributes, myCustomSSML(

        card_title, speech_output, None, should_end_session))


def myLaunchIntent():

    """ If we wanted to initialize the session to have some attributes we could

    add those here

    """

    session_attributes = {}

    card_title = "Welcome"

    speech_output = "Welcome to your custom Alexa application!"


    return start_audio()

目前:


-> 启动时


-> 返回开始音频


-> 我需要在 X 秒内通过


-> X 秒将启动计时器


-> 一旦该计时器完成调用另一个停止的函数


如果有人可以引导我朝着正确的方向前进,例如向我展示如何以 x 秒运行后台计时器然后调用另一个函数,那么我将能够接管并将其扩展得更高。


慕姐8265434
浏览 202回答 2
2回答

阿晨1998

由于 Alexa 作为请求/响应应用程序工作,因此一旦您发送响应,就无法再控制播放,直到用户执行某些操作并且新请求到达您的处理程序为止。我可以想象两种可能的方式来实现所需的功能。要么即时生成一个简短的音频剪辑(使用 FFmpeg 之类的东西),要么为所有可能的持续时间(1 秒、2 秒、3 秒...)预先生成它们并提供适当的剪辑。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python