大牛请进,Android音视频聊天各种实现方式问题

天水笑微 2014-11-18 10:11:12

最近项目需要,要完成一款局域网通信软件,主要实现Android端的文字、语音、视频聊天功能,并且实现服务器,服务器端能实现客户端上下线监控以及资源推送等简单功能,但是服务器端现在还没人做,想找找有没有现成的,减少工作量。
这两天查了一些资料看主流的实现方式有以下几种:
1. xmpp+openfire方式,客户端调用asmack类库,这种方式比较成熟,尤其服务器端已有比较完整的demo,但是 所有的相关资料都是文字聊天,没有音视频,又有的说xmpp视频传输支持的不好,openfire冗余大的问题。
2、tcp通信,通过调用Android提供的相关tcp,udp网络传输api实现,这种实现方式也很普遍,但就是得从最开始实现。
3、jingle:据说gtalk就是在方案一的基础上用jingle实现了视频聊天,不过资料特别少。
4、jitsi,貌似是xmpp+sip, 这个git上有比较完整的源程序,但是感觉好复杂,研究透它实现可行么?
5、sip协议,可以用于视频通信

我初步想通过xmpp和android tcp api组合完成,xmpp实现与服务器的交互和资源推送,tcp实现音视频聊天,不知道可行么,这两种协议在一块工作可以么? 还是直接研究下jitsi的实现更靠谱一些。

这方面知识浅薄,烦请有相关这方面研究的大神指点一二,那种实现方式比较可取!!谢谢谢谢!
...全文
17115 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
涛锅锅 2017-06-14
  • 打赏
  • 举报
回复
楼主实现了么,我也要实现这个效果,可惜小白一个能力有限,能分享个demo么,7490725@qq.com,不胜感激
qq_25274797 2017-06-07
  • 打赏
  • 举报
回复
楼主实现了么,我也要实现这个效果,可惜小白一个能力有限,能分享个demo么,506670934@qq.com,不胜感激
leikko 2017-06-07
  • 打赏
  • 举报
回复
楼主实现了么,我也要实现这个效果,可惜小白一个能力有限,能分享个demo么,812071489@qq.com,不胜感激
Mr_Deamer 2017-06-01
  • 打赏
  • 举报
回复
楼主实现了么,我也要实现这个效果,可惜小白一个能力有限,能分享个demo么,972850173@qq.com,不胜感激
qq_33224974 2016-10-21
  • 打赏
  • 举报
回复
同求demo 779481493@qq.com
啊哦啊哦 2016-05-03
  • 打赏
  • 举报
回复
我最近做一个项目,类似QQ的app,然后要添加视频聊天功能,你有源码吗,求分享。295903969@qq.com,好人一身平安
u013133387 2015-12-08
  • 打赏
  • 举报
回复
我现在的需求和楼主的一样,楼主有这方面的DEMO么?求发 邮箱277736344@qq.com,不胜感激
苍狼逐鹿 2015-09-15
  • 打赏
  • 举报
回复
你好,我最近在做jitsi android'端程序开发,(源码在github上下载)在注册用户登陆以后总是离线状态,想向您请教下,关于服务器部分配置,如何实现android端和服务器正常的通信。。。
wangkai_6 2015-04-27
  • 打赏
  • 举报
回复
同求视频聊天 小白一个
hjiany 2015-04-24
  • 打赏
  • 举报
回复
楼主,你的这个功能实现了不?能发给我看看不?624793071@qq.com
天水笑微 2014-11-26
  • 打赏
  • 举报
回复
引用 5 楼 birdsaction 的回复:
要求不高的话用局域网用UDP是可以做到的,Android 通过UDP 抓取UDP广播包 可以传输语音字节。
嗯,我试下整合一下,不过两个协议轨迹估计得维持两套在线用户列表。谢谢啊
Birds2018 2014-11-18
  • 打赏
  • 举报
回复
要求不高的话用局域网用UDP是可以做到的,Android 通过UDP 抓取UDP广播包 可以传输语音字节。
天水笑微 2014-11-18
  • 打赏
  • 举报
回复
引用 3 楼 birdsaction 的回复:
如果语言和视频不经过 服务器 就没有离线功能了, 你用蓝牙倒是可以实现一对一的那种,如果是群发就困难了, UDP也可以做到,技术上可以实现。
哦,其实实现的核心功能就是局域网内在线用户的实时通讯,类似对讲机,用户比较少,如果语音视频暂不考虑离线,用tcp/udp单独实现音视频通信应该可以吧?一对一应该比较好实现,群聊用udp技术上可以成立哈?我是觉得这种实现方式,多种协议叠加,会不会有冗余?这方法不是比较二?不知道有没有比较成熟的方法
Birds2018 2014-11-18
  • 打赏
  • 举报
回复
如果语言和视频不经过 服务器 就没有离线功能了, 你用蓝牙倒是可以实现一对一的那种,如果是群发就困难了, UDP也可以做到,技术上可以实现。
天水笑微 2014-11-18
  • 打赏
  • 举报
回复
引用 1 楼 birdsaction 的回复:
文字聊天推送用xmpp+openfire是够了, 语音要单独弄个服务器 加密和压缩 个人觉得都要用JNI C/C++库去处理提高性能,你可以用Apache MINA做为TCP基础框架。 像图片发送都可以用单独的服务器去处理,独立处理。 楼主的项目就相当于一个小型的微信系统了。 看你的用户需求和用户量。基本都是TCP Socket通信, 部分可用HTTP,比如用户登录注册,版本更新等。
谢谢回复!我想文字聊天推送用xmpp+openfire,然后语音、视频聊天不经过服务器,客户端与客户端直接通信这种方式可行么?因为服务器也就实现个查看当前用户,资料下载、推送功能,不许要存储用户间音视频交互信息,可以不另设服务器么。类似局域网通信软件的功能。
Birds2018 2014-11-18
  • 打赏
  • 举报
回复
文字聊天推送用xmpp+openfire是够了, 语音要单独弄个服务器 加密和压缩 个人觉得都要用JNI C/C++库去处理提高性能,你可以用Apache MINA做为TCP基础框架。 像图片发送都可以用单独的服务器去处理,独立处理。 楼主的项目就相当于一个小型的微信系统了。 看你的用户需求和用户量。基本都是TCP Socket通信, 部分可用HTTP,比如用户登录注册,版本更新等。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧