我正在做一个功能,返回音频,但只有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秒运行后台计时器,然后调用另一个函数,那么我将能够接管并扩展这个功能。
最佳答案
因为Alexa作为一个请求/响应应用程序工作,一旦发送响应,就再也无法控制回放,直到用户执行某些操作,并且新的请求到达处理程序。
我可以想象有两种可能的方法可以实现所需的功能。要么在运行中生成一个短音频剪辑(使用类似FFmpeg的东西),要么在所有可能的持续时间(1s、2s、3s…)中预生成它们,并提供相应的音频剪辑。
关于python - 在后台运行计时器x秒钟[Alexa Skill],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54174225/