android广播语音,Android_语音通信以及视频通话的简易实现方式

she目前项目上需要做一个视频通话以及语音通话的功能,调试了一阵子,总算是可以跑通了,也做好了事件处理,备份一下。

96539dcfc153?from=timeline

96539dcfc153?from=timeline

话不多说,上代码:

项目结构:

96539dcfc153?from=timeline

其中module文件juslibs为需要的部分jar包,抽离出来用module的方式进行依赖会比较方便管理,

此外我们还需要依赖部分aar文件,这里面集合了部分系统UI以及功能类库,结构图:

96539dcfc153?from=timeline

需要注意的是,导入aar文件的方法:

96539dcfc153?from=timeline

96539dcfc153?from=timeline

至此项目环境配置完成。

像一般sdk一样,我们需要在application文件配置一些相关的信息:

96539dcfc153?from=timeline

注意实现LoginDelegate.InitStat接口:@Override

public voidon Terminate() {

super.onTerminate();

LoginDelegate.destroy();

}

初始化成功了,我们需要去登录操作:

96539dcfc153?from=timeline

像文档介绍的,我们有很多种登录方式去选择,

96539dcfc153?from=timeline

由于后台还没配置成功,所以我们使用了简易的方法去登录(JusTalk Cloud 鉴权信息):

在loginActivity的oncreate()方法里面我们做了如下操作:

96539dcfc153?from=timeline

第一个方法是初始化控件以及setonclicklistener();

第二个方法是权限申请,配合copyRes() 用于复制一些必须的资源文件去到sd卡中;

第三个方法为初始化回调;

最后一个方法为初始化广播。

OK,看下acitivity实现了

96539dcfc153?from=timeline

这个接口,相对应我们需要实现这些方法,而登录(无账号自动注册)操作也都会相应调用这些事件:

96539dcfc153?from=timeline

96539dcfc153?from=timeline

96539dcfc153?from=timeline

96539dcfc153?from=timeline

是不是看得有点懵...但是其实我们需要调用的是下面这登录方法,相应的事件处理我们就在callback里面写就好了

96539dcfc153?from=timeline

登录方法,未注册的账号会先行注册,并执行登录方法

更详细的可以看下尾部的github地址。

登录了以后,我们可以进入主页,因为demo没有集成好友体系,所以我们简单地手动输入用户id,

96539dcfc153?from=timeline

简陋的,丑爆了的主页

有些比较重要的方法,我一一列举出来:

拿到视频的比特率配置信息:int mode = JusCallConfig.getBitrateMode();

设置比特率配置信息:JusCallConfig.setBitrateMode(value);

设置mack配置信息:MtcCallDb.Mtc_CallDbSetVideoNackRttRange(100,value);

是否自动接听语音,视频:boolean autoAnswer = JusCallConfig.getIsAutoAnswerEnable();

boolean autoAnswerWithVideo = JusCallConfig.getIsAutoAnswerWithVideo();

最简单的调用界面UI去进行视频:/**

*  语音

*/

private voidaudioTalk() {

String number =mEtTalkNumber.getText().toString();

if(TextUtils.isEmpty(number)) {

Toast.makeText(this,"Please enter number",Toast.LENGTH_SHORT).show();

return;

}

// 是否需要旋转功能

JusCallConfig.setCapacityEnabled(JusCallConfig.MAGNIFIER_ENABLED_KEY, false);

MtcCallDelegate.call(number, null, null, false, null);

}/**

*视频

*/

private voidvideoTalk() {

String number =mEtTalkNumber.getText().toString();

if(TextUtils.isEmpty(number)) {

Toast.makeText(this,"Please enter number",Toast.LENGTH_SHORT).show();

return;

}// 是否需要旋转功能

JusCallConfig.setCapacityEnabled(JusCallConfig.MAGNIFIER_ENABLED_KEY, false);

MtcCallDelegate.call(number, null, null, true, null);

}

是的,一个简易的功能已经搭建完成了,相对应的视频界面是封装在aar里面,

如果需要自己的UI,怎么办呢? 我们可以调用底层的sdk接口去实现,界面UI,逻辑,全部暴露了出来供我们使用;或者反编译aar文件,直接在他们的基础上修改。

由于设计师大人比较好说话,所以界面改动并不大...所以用了封装的aar文件。

但是事件监听呢?我们要如何去实现?

答案是-----> 广播!

请看截图:

96539dcfc153?from=timeline

一堆广播

相对应的广播事件初始化以及小操作已经写在了这个类里面了

96539dcfc153?from=timeline

方法就不展开了...大图上传好慢,我会在尾部贴上github地址。

OK,其实也差不多了,只是小demo,等后期接进了项目,有坑再填坑,有改再挖坑!

互勉!

github地址:视频通话的demo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值