在發送方:
對于相同時刻的音頻/視訊幀,打上相同的時間戳(系統時間)
接收方:
儲存兩個隊列,audio/video分别用來存放還未播放的音頻和視訊
1。當每接收到音頻幀的時候,周遊此時的video隊列,将此音頻幀的時間戳跟每個視訊幀的時間戳進行比較:
1)如果音頻幀的時間在這個視訊幀的前面,幀播放該音頻
2)如果音頻跟視訊的時間戳相差在某個可以接受的誤差内,則同時播放該音頻/視訊(并将視訊幀從video隊列中删除)
3)如果視訊時間在前,則播放視訊幀(并将視訊幀從video隊列中删除)
如果video隊列中的最後一幀的時間都在這個audio幀之前,在此時會把整個video隊列中的幀播放完,此時video隊列将為空,那麼将這個音頻放入audio隊列。
2.對接收到視訊幀的時候,也做類似的處理。
本文轉自 fanxiaojun 51CTO部落格,原文連結:http://blog.51cto.com/2343338/1061146,如需轉載請自行聯系原作者