2 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
1,關(guān)于接收數(shù)據(jù)那塊,didReadData的delegate中用一個(gè)NSMutableData即可,接收到數(shù)據(jù)后先判斷,看是否需要使用appendData加入進(jìn)來,如果剛好讀取完一個(gè)完整的數(shù)據(jù),先copy出來去操作,并將NSMutableData設(shè)置為nil,下一個(gè)數(shù)據(jù)進(jìn)來重新初始化并添加。這樣保證內(nèi)存中最多只有一個(gè)完整的數(shù)據(jù)。 而且處理完就得繼續(xù)readData。
2,關(guān)于數(shù)據(jù)的容錯(cuò),是否完整這個(gè)就得根據(jù)文件楨頭來進(jìn)行判斷,客戶端自己決定如何丟棄。
3,實(shí)際上接收的速度是和服務(wù)器發(fā)送的速度相關(guān)的,服務(wù)器控制發(fā)送時(shí)間間隔即可??蛻舳司偷貌粩嗟淖x取,操作。
最后如何組合圖片序列為視頻 使用AVAssetWriter即可,可以控制每秒多少張,包括儲存的格式,沒必要去使用ffmpeg或者自己寫數(shù)據(jù)頭。

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
你發(fā)送端就要序列化數(shù)據(jù),接收端就不會錯(cuò)位的。一般情況下是不會產(chǎn)生錯(cuò)位的。每次接收數(shù)據(jù)你可以計(jì)算NSData的大小的,不需要使用什么subdataWithRange,最好的好就是使用append。delegate這個(gè)是接收到一定的長度或者小于這個(gè)長度就會delegate。如果數(shù)據(jù)量很大的話,會產(chǎn)生分成很多個(gè)數(shù)據(jù)包傳輸。所以一次delegate有可能不是一個(gè)完整的數(shù)據(jù)
- 2 回答
- 0 關(guān)注
- 372 瀏覽
添加回答
舉報(bào)