假设有:A,B 两个人语音。
问题是:A 玩家关掉麦,无法开启麦(进一步原因是:A 玩家关掉麦,便收不到B玩家的数据 )
情况如下:
Step 1. A玩家关掉麦,B 玩家的播放,是在等待A玩家的网络数据。因为无法知道是A关掉,还是因为网络延迟造成数据暂时没到。
Step 2. B玩家的Write 不会被顺利调用. 也就是B玩家的OutStream Write 被 InStream Read 的没有完成,而阻塞。
Step 3. 因此,A玩家收不到B玩家的播放数据。
Step 4. A 玩家开启麦, 结果因为 InStream Read 的没有完成,而阻塞OutStream Write(格式包没有阻,第一个数据包就阻塞了)
以此文希望使用:WEBRTC OutStream Write & InStream Read 的朋友们,小心在意。
最终建议: InStream Read 必须实时返回。你没有数据?需要等待网络数据? 那你不如自己假造无声数据。以便返回。
否则将阻塞OutStream Write 。以及别人的相关操作了。