如何在播放状态下重新启动管道

How to restart a pipeline when it is in playing state

我有一个管道,处于播放状态,

GST_STATE_PLAYING

现在,过了一段时间,当满足某些特定条件时,我想重新启动同一个管道。

我怎样才能做到这一点?

视情况而定here

你可以把它变成NULL然后PLAYING:

gst_element_set_state(pipeline, GST_STATE_NULL);
//do your stuff for example, change some elements, remove some elements etc:
gst_element_set_state(pipeline, GST_STATE_PLAYING);

或者您可以将其置于 READY 状态(在上面的代码中将 NULL 替换为 READY)并设置一些我猜应该起作用的参数..

关于 sync/async 等 gst_element_set_state 检查文档 here