我正在嘗試爲MJPEG視頻創建RTP數據包。首先,我讀取文件的前5個字節,它給出了幀的長度,然後我讀取返回的大小。在Node.js的ReadSync調用期間長度超出緩衝區錯誤
這裏是我的代碼:
while(totalSizeScanned < totalSize){
var tmp_buf = Buffer(5)
fs.readSync(fd,tmp_buf,totalSizeScanned,5);
totalSizeScanned += 5;
var stringBuffer = tmp_buf.toString("utf-8");
this.total_len = parseInt(stringBuffer, 10);
var frame_buf = Buffer(this.total_len);
fs.readSync(fd, frame_buf, totalSizeScanned, this.total_len);
file_content[frameNo] = frame_buf;
frameNo++;
totalSizeScanned += this.total_len;
}
這是給我的第二readSync呼叫「長度超出緩衝區」的錯誤。我不明白爲什麼會發生這種情況,因爲我讀的大小應該是緩衝區的大小。我一直在搜索文檔和谷歌約一個小時,但一直沒有找到任何東西。我是Node的新手,所以這可能是微不足道的,但我不確定。
謝謝。
我懷疑這是一個偏移量與位置:無論是在當前位置開始在偏移0( null =當前位置),或者在位置'0'開始的偏移量'totalSizeScanned'偏移處。 – Wrikken 2013-03-07 00:29:02