如何开发一个简单的聊天APP?

个人年近4张,自有工作稳定年薪还可以,所以食住无忧;
现想自己自觉编程,主要是自己想开发个聊天app软件,纯兴趣,后面没有会为此转型工作或靠这吃饭等意思,预算用1年或更长的时间来玩这个聊天APP软件,所以时间充足;
那么问题来了,这聊天app软件的开发,我该学习哪方面的软件,如java,或哪方面,后面要用到哪方面的软件或相差内容等,
望各位大神给条明路,希望能写详细点,感谢感谢;

以前做过聊天的项目,群聊和单聊都是在一个项目中进行的,这次的项目需求是在不同的APP中实现即时通讯,想着很复杂的样子,没想到实现起来那么容易。

一.选择第三方框架(环信?,容云?)

上次做聊天功能时用的容云,这次本想着用下环信,看环信API时,真心感到累!不能浪费太长时间,于是最后的决定还是容云吧!

  1. 注册登录后,在容云的控制台获得App Key。

    当需要显示用户信息的时候,IMKit自己会走这个方法去查询用户信息,然后显示在适当的位置。

    (2).点击头像的方法?

    点击Cell中头像的回调 长按Cell中头像的回调
    1. IMKit是如何缓存的呢?怎么才能在断网的时候显示聊天记录呢?我们所担心的这些,云容都已经想到方法,在此不得不佩服容云开发者的强大。

    在AppDelegate里面如果设置enablePersistentUserInfoCache设置为NO,则SDK在需要显示用户信息时,会调用用户信息提供者获取用户信息并缓存到Cache,此Cache在App生命周期结束时会被移除,下次启动时会再次通过用户信息提供者获取信息。
    如果设置为YES,则会将获取到的用户信息持久化存储在本地,App下次启动时Cache会仍然有效。

    获取SDK中缓存的用户信息

    在我们服务端获取token成功之后我们会去连接融云的服务器,断网的时候当然我们不能获取到token了。
    我们需要在获取token成功之后缓存一下这个token,

    再次登录的时候,如果获取token失败了,那在登录失败的方法中用缓存的token连接融云服务器,根据UserId拿到用户信息。

    1. 在容云控制台上传自己生成的推送证书。
      在代码中请求远程推送权限

    因为项目目前需求为单聊,以后会有群聊,聊天室,后续加上此功能。


语音聊天和视频聊天,基本是社交软件必备的功能。山东布谷除了单纯的一对一语音或视频聊天,在实时音视频技术支持下,很多APP已经延伸出非常多的玩法。为大量的社交APP提供技术服务后,看到了现今和未来,语音社交呈现出的多种不同的形态,在此与大家分享。
目前的社交语聊形态大致分为四大类,其中,又数多人语聊房延伸出的玩法最多。
1、1V1 私人聊天房
多人语聊互动、多人语聊+游戏互动、多人语聊+赛事直播、多人语聊+私密影院和多人语聊等。
3、语音电台(有单主播、有多人)
4、KTV语聊房(有单人、有多人)


1 对 1 语聊常见的应用场景有亲密聊、陪聊、语音交友等,大部分社交APP都上线了 1 对 1 语聊功能,分为免费和付费陪聊两种玩法。在客户功能需求方面,为几大类:私聊+背景音、私聊+无背景音,转推CDN和不转推CDN,录制上可选单流录制、混流录制、私有化录制或不录制。
多人语聊房延伸出的玩法就非常多,其中每种玩法都有所差别。除了多人纯语聊,还有跟其他娱乐形式结合的玩法,比如多人聊天+游戏互动、多人聊天+赛事直播、多人聊天戏等等。
多人纯语聊分为无观众和有观众两种模式,纯聊天的语聊房一般会定主题来聊,比如相亲、情感、陪练等等,多人连麦聊天,观众文字互动或打赏。
2)多人语聊+游戏互动
多人语聊用在游戏当中,就是游戏语音,除了用在大型的吃鸡类游戏,用户通过语音轮麦的方式进行游戏接力,一起玩耍。
3)多人语聊+私密影院
这个场景和赛事直播的玩法类似,不同是赛事直播拉取的是直播视频流,私密影院拉取的是录制好的视频流,在一个房间内大家边看边吐槽。


一对一语音聊天场景技术难点
布谷视频聊天时候,因为可以看到彼此,对声音也不那么在意。而纯语音聊天时,人注意力都放在声音上,对音质的要求更高。
1 对 1 语聊的技术门槛相对较低,多人语聊和特定场景相对复杂,技术实现难度比较大。如果经常出现卡顿、延迟和听不清的情况,会将营造的剧情气氛破坏殆尽,主播时不时要退出重新登录,无法全身心投入,用户听到的是断断续续的声音,不能沉浸到剧情中。
自研的音视频引擎,通过抖动缓冲技术、前向纠错技术、丢帧补偿技术减少网络抖动和弱网环境下的延迟,保障语音通话低延时且清晰。让用户在复杂网络环境和多类型手机的情况下,也能实现畅通优质的语音通话。
2)多人聊天的语音前处理
以KTV语聊房为例,在房间当中,有人说话声音、歌声、伴奏都在房间呈现,每个人所处的地方,所用的设备也不一样,这就有很大可能出现回声、噪音,或是某个人设备不是很好,发出的声音很小。
成熟的语音前处理3A技术:回声消除(AEC)、噪音抑制(ANS)、音量增益(AGC),杜绝回声和啸叫,降噪而无损音质。这样歌者能展示甜美歌声,听众也有良好的听觉享受。
而在KTV类的场景中,AB两人轮麦合唱,如果轮到B唱歌时发现歌词没同步,就很难唱下去。这当中技术难点就在于歌词等媒体次要信息是否能做到同步。
支持将非媒体信息注入媒体流中,歌词等媒体次要信息和音视频信息放在同一个媒体通道传输的,做到歌词与歌声同步展示果。


我要回帖

更多关于 与老外聊天的app 的文章

 

随机推荐