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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 04:35:08