none
請問如何儲存網路串流到Memory的問題? RRS feed

  • 問題

  • 程式須要透過 TCP 接收 video streaming 的資料後 在把它傳送給播放器去播放
    我開了一隻Thread用來接收串流先暫存到Buffer裡面, 另一隻Thread負責從Buffer讀取資料並把它傳送給播放器去播放
    所以Buffer我選用了List<byte[]> 來存放收到的封包

    //用全域變數來宣告Buffer
    public static List<byte[]> buffer = new List<byte[]> { };
    
    //開了一隻Thread用來寫入連續收到的video streaming的資料
    
    buffer.Add(data);
    //另外一隻Thread用來讀取Buffer裡的資料 傳送給播放器播放
    
    byte[] data = new byte[1460];
    data = buffer[0];
    

     
    問題出在當我播放時 影片畫面會有byte錯誤 導致畫面會有雪花和播放起來不順的情況.

     請問一隻Thread連續寫入資料到List 另一個Thread一直讀出資料, 這樣會造成資料寫入或讀取錯誤嗎?

    大家在設計時都是選用什麼資料結構來設計 Buffer 呢? 說了一大堆 如果有詞不達意的話還請大家多多包涵 謝謝大家耐著性子把它看完 謝謝!
    • 已編輯 Ben Wen 2009年6月11日 下午 02:55
    2009年6月11日 下午 02:40

所有回覆