如何在Gradio中点击「停止录制」按钮时调用指定函数?
实现点击Gradio麦克风停止录制按钮时调用指定函数
需求:点击Gradio麦克风组件自带的「停止录制」按钮时,调用stop_streaming函数,现有基础代码如下:
import gradio as gr def handle_streaming(stream_in): print(f" Got New Samples") def stop_streaming(): print("Streaming has stopped") if __name__ == "__main__": with gr.Blocks(theme=gr.themes.Glass()) as demo: stream_input = gr.Audio(source="microphone") stream_input.stream(fn = handle_streaming, inputs = [stream_input], outputs = [], every = 1) demo.queue().launch(share=False, debug=False)
解决方案
Gradio的Audio组件内置了stop_recording事件,用于监听录制停止操作,直接为组件绑定该事件即可实现需求。
修改后的完整代码:
import gradio as gr def handle_streaming(stream_in): print(f" Got New Samples") def stop_streaming(): print("Streaming has stopped") if __name__ == "__main__": with gr.Blocks(theme=gr.themes.Glass()) as demo: stream_input = gr.Audio(source="microphone") stream_input.stream(fn = handle_streaming, inputs = [stream_input], outputs = [], every = 1) # 绑定停止录制事件到指定函数 stream_input.stop_recording(fn=stop_streaming) demo.queue().launch(share=False, debug=False)
说明
新增的stream_input.stop_recording(fn=stop_streaming)代码,会将「停止录制」按钮的点击动作与stop_streaming函数关联,用户点击按钮时就会触发函数执行。
内容的提问来源于stack exchange,提问作者user3668129
相关产品推荐
相关产品推荐

