如何用烧瓶停止流响应

时间:2016-07-03 15:16:10

标签: flask httpresponse

在Flask中,我想停止视频流,以执行其他任务(重定向到主页)。 但相反,当流停止时,屏幕会冻结到最后一帧。

我的代码是:

def gen_temporary(cam):
    counter_frames=0    
    while counter_frames<100:
        frame = cam.get_frame()
        counter_frames+=1
        yield (b'--frame\r\n'
           b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')
    yield redirect('/mainPage')

@app.route('/video_capture') def video_capture(): return Response(gen_temporary(VideoCamera()), mimetype='multipart/x-mixed-replace; boundary=frame')

1 个答案:

答案 0 :(得分:0)

在您发送内容后,您无法发送HTTP位置标头等标头。此外,即使您可以,如果此响应是视频流,它可能会由<video>元素或类似元素使用,并且重定向将仅重定向视频请求,并且用户将保持在同一页面上。

如果您想在视频播放后将用户重定向到其他位置,您必须通过听取相关事件然后更改网址来通过JavaScript进行操作。