首先先实习,本地的,发送先变成一个转移。挺好的,就是过了UDP,不行了,其中一个pad不行了,另一个还凑活
给个链接,觉得分析得很到位http://ticktick.blog.51cto.com/823160/1746136,简直太棒了。
一个系列的文章都是不错的,只是最后的效果还是不好。
看来直接发pcm这个玩意还是有点问题,其实假如能解决忽快忽慢这个问题,空间可以自己管理的。
那个链接里面提供了demo,挖出来后,加上了UDP的发送和接收模块,音质比之前的版本好很多。
现在得想想怎么把这个代码放到原来的代码里面去。
首先得有一个聊天请求的,然后进入一个请求界面,然后有个接收按钮,或者拒绝按钮。点击拒绝,则回退到聊天界面,假如接受,则开启UDP,开始聊天。
试试看吧。
第一步,改界面。完成。如图:
第二步,点击出新的界面如图:
第三步:请求界面和被动请求界面不同:
第四步:对方,接收或者拒绝,会有反应,拒绝,退出,接收开线程,完成
第五步:有bug,一次通信后,下一次不一定能成功,看是不是datagramSocket惹的,改了之后,有一个肯定成功,现在是,A开启,A关闭,B随后关闭后,会不行。原因是java.net.BindException: bind failed: EADDRINUSE (Address already in use)搞是搞定了,原因我很不解。神tm傻逼问题,就是UDP receive阻塞了,导致不执行下面的了,就是这么简单,之前的问题
音频部分还是没用编码,pcm直接传比特流了,编解码,视频是肯定要的
整合下代码,规范下。然后研究最难的,视频聊天了