网络电话语音通话的android实现

  • 现在很多第三方开发平台封装了一些强大的功能,比如消息推送,第三方分享,短信验证码,以及IM即时通讯,语音聊天,视频聊天等功能。
  • 今天就和大家分享一下如何利用第三方开放平台实现网络电话的功能,也就是语音聊天。
  • 这里是基于云之讯开放平台来实现的。
  • 之前很多人都跟我说过,这些使用第三方开放平台来实现的功能,代码写起来都非常的简单。不过我现在明白了,这里说的简单,是相对完全是自己去开发而言的。如果就使用云之讯的开放平台去实现语音聊天这个功能而言,个人认为还是有些复杂度的。
  • 而且,使用第三方开发平台提供的sdk与使用开源项目如github上面的框架而言,我感觉最大的不同就是,你不知道这些方法是怎么实现的,你也不知道需要传递哪些参数。你更不知道,除了官网提供的Demo,还有没有其他的实现方式。当然,这些方法的调用,参数的传递,是会有一个开发文档提供的,但是对于arg0,arg1这样的东西想必你也不喜欢吧。
  • 不过没有办法,这些强大的功能,确实需要更高深的技术去实现,我们想用这些功能而自己又不知道怎么实现的时候,只能借助这些第三方开放平台。
  • OK,废话就讲这些了,下面是语音聊天的代码介绍:
    • 这个Demo也是基于云之讯官网提高的测试Demo来的,不过,只实现了语音聊天的功能,没有IM的功能,官网的Demo里面的功能比较全面。
    • 这个Demo,如果你去读了云之讯的测试Demo,你会发现,里面的回调,广播,一大堆,搞来搞去的,很让人头晕。我的这个Demo也是的,因为我就是想实现一下这个语音聊天的功能,并没有对它的代码做深度的优化。
  • 其实代码没有什么说的,因为代码的整个逻辑流程,已经在上一篇中比较详细的解释过了。这里就粗略的介绍一下。
      1. 首先,你要想进行语音聊天,必须先登录帐号,登录成功才有后续的事情
        • 1.这里要说明一下,其实使用云之讯的这个语音的功能,里面的登录其实是有两次登录。第一次,是主帐号的登录。也就是你的开发者帐号。第二次登录,才是你的客户端帐号的登录,只有客户端登录完成才可以进行语音聊天。
      1. 在客户端帐号登录成功之后,然后就可以进行语音通话了。
        • 1.它这里进行语音通话,又有好几个可选项,可以是单纯的网络电话,也可以是直拨电话,回拨电话。关于这些概念我就不解释了,相信度娘的解释会更清晰。
        • 2.进行语音通话,其实是有两种可能的,一种是你发起,打给别人,另一种是别人发起打给你的。
          • 对于别人打给你的,你只有处理好回调里面的逻辑就好了。对应云之讯的sdk而言,你要关注的回调就是onIncomingCall。在这个回调里面,你去开启一个界面显示来电。
          • 对于你自己发起的,你就要主动去调用sdk提高的拨打网络电话的方法了,核心方法就是void com.yzx.api.UCSCall.dial(Context arg0, CallType arg1, String arg2);这个方法没有任何返回值,所以也就不能根据这个方法去判断拨打成功还是失败了,或者什么其他情况。但是它提供了onDialFailed以及onAlerting等方法,可以通过这些知道拨打是否失败,对方有没有收到这里的发起。
  • 其实关于主帐号登录已经子账号登录是否成功也是有相应的回调的,但是相对应语音功能,前面的登录相对简单,就不做介绍了。
  • 关于代码的介绍就这些吧,比较简略。
  • 主要是里面全部是回调和广播,逻辑的处理非常跳跃,不太好介绍。但是大体就是根据一个状态发送一个广播,在接收器里面根据状态去处理对应的事情,如果处理的事情需要通知其他地方,再发一个广播,让需要得到通知的地方再去注册一个广播接收器去接收消息,然后,这里的接收器里面处理完了事情,要不要通知其他地方,如果要,又是这样的处理方式,总体来说,比较跳跃。不过代码还是相对清晰的,虽然跳跃,但是功能OK。
  • 还有一点,我仅仅是实现了这个语音通话的功能。而且这个通话的功能仅限于开发者帐号提供的测试client帐号,没有去实现注册client帐号的功能。
    • 为什么没有去实现呢?
        1. 注册client需要通过云之讯的审核,而不仅仅是注册一个开发者帐号,我没有去提交这个审核。
        1. 他的测试Demo里面没有去做申请client帐号的逻辑,我也就没有去做了。
          OK,介绍也结束了,下面是我的Demo。项目源码,点击下载
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值