2

我有一个 playbin2 管道播放具有多个轨道的视频文件。current-video我可以通过设置属性来改变当前播放的曲目:

current-video       : Currently playing video stream (-1 = auto)
                      flags: readable, writable
                      Integer. Range: -1 - 2147483647 Default: -1

但是,一旦我设置了这个,视频就会挂起,然后最终变成灰色。音频继续播放。一位同事建议冲洗管道可能会修复它,但唯一的方法似乎是使用GST_SEEK_FLAG_FLUSH. 使用 seek 确实有效,但看起来很乱:

g_object_set(m_playBin, "current-video", video, NULL);
GstClockTime = getCurrentTime();
gst_element_seek(m_playBin, m_player->rate(),
        GST_FORMAT_TIME,
        (GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE),
        GST_SEEK_TYPE_SET, clockTime,
        GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)

设置时我做错了current-video吗?有没有更简单的方法来冲洗管道?

注意:我使用 Ogg Theora 文件进行测试,因为它很容易构建,所以我不确定这个问题是否会以其他格式出现。

4

0 回答 0