DirectShow中例子pull模式的源filter播放大檔案慢的問題

來源:互聯網
上載者:User

DirectShow內建的例子中,有一個pull拉模式的Source Filter例子程式(Async那個),在它的Load()函數(裝載源檔案)裡面調用了Read()函數,這裡它是將整個源檔案都讀入記憶體中(所以播放小檔案不太影響而播放大檔案開始要等很久很久)

我本來的處理是:

讓Read()函數先讀取適當資料後啟動一個子線程接著讀資料,而主線程開始串連Graph實現播放,這樣可以實現,不過伴隨出現了2個問題: A.雖然唯讀了小部分資料,不過向下傳遞的參數還是檔案的總大小,好象後面Stream那個類使用它的時候還很費時間(它的Size(),SetPoinyer(),Reag()這3個函數都使用了檔案大小這個參數),不過還是比不用子線程快多了  B.這時候如果子線程資料還沒讀完,快進就有問題,因為快進到了還沒有資料的位置, 畫面會靜止不動.

後來使用記憶體對應檔,解決:)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.