2016-01-23 32 views
0

我有一個直接運行的directshow過濾器圖形,沒有任何停止。但是,當我將圖形源更改爲其他視頻文件時,音頻&視頻流之間的同步失敗。如何閃出Directshow音頻渲染緩衝區?

這是因爲一些音頻幀還沒有播放。怎麼可以告訴圖形閃爍音頻緩衝區?

+0

你可以試試[GMFBridge](http://www.gdcl.co.uk/gmfbridge/)切換源代碼。 – wimh

回答

0

當您停止過濾器圖形時,無條件刷新數據。

不停止,您可以通過調用各自輸入引腳的IPin::BeginFlushIPin::EndFlush方法(第一個,然後緊接着第二個)去除緩衝數據。這不一定是渲染器的輸入引腳,您有興趣調用上游音頻引腳,以便將此刷新調用傳播並將所有內容都消耗到渲染器。

+0

不幸的是,BeginFlash和EndFlash沒有幫助。音頻緩衝區長度爲500毫秒,當我調用這些功能時,音頻仍然繼續播放。 –