语音通讯又叫语音通话,在传统里面都常见的有座机通话,手机通话,对讲机通话,网络上面的语音聊天等...统称为语音通话。在互联网背景下,我们讨论的是网络语音这块,通话是比较通俗的说法,技术点我们称呼为通讯,所以下文我都会以语音通讯作为主角,请理解哦。
如果还是不怎么理解,我就qq语音,这个就是就好理解了吧,就是利用互联网的tcp/ip协议将音频进行封装发送,当达到一定速度时候,这个语音就是瞬时的,当然像微信的也是语音通讯的一种,那个比较慢的传播,这样做的好处是节省带宽。
作者是使用的云之讯的接口开发语音会议系统的,现在我们先来看看他们的优势:
“pAAS平台提供融合电信网络和IP网络的多种通话能力,实现高质量语音对讲、互联网语音、P2P语音等语音应用。
1.智能选择通信电路,保证通话质量;
2.自主研发软交换系统,保证性能与语音通话质量;
3.接入三大运营商落地网关,实现互联网IP呼叫与传统电信网络的呼叫交换
了解完他们的优势介绍,我们就跳入开发文档吧:
1. 注册VoIP电话监听器
/**
* 注册VoIP电话监听器,监听VoIP电话的各种状态
* @param csl CallStateListener监听器实例
* @return void
*/
UCSCall. addCallStateListener(CallStateListener csl)
2. 发起呼叫(不含回拨)
/**
*发起呼叫
* @param mContext 当前程序上下文 ApplicationContext
* @param callType 拨打电话方式,类型为: 0:直拨 1:免费 2:回拨
* @param calledNumber 被叫手机号码或Client账号
* @return void
*/
UCSCall. dial(Context mContext,CallType callType,String calledNumner);
3. 发起回拨呼叫
/**
* @param mContext
* @param calledNumner:被叫号码
* @param fromSerNum:呼叫主叫所要显示的号码(没有可以不传)
* @param toSerMum:呼叫被叫所要显示的号码(没有可以不传)
*/
UCSCall.callBack(Context mContext,String calledNumner,String fromSerNum,String toSerMum)
4. 释放通话
/**
* 释放通话
* @param callid 当前通话id (目前版本为空)
* @return void
*/
UCSCall.hangUp(String callid)
5. 接听来电
/**
* 被叫接听
* @param callid 当前通话id
* @return void
*/
UCSCall.answer(String callid)
6. 发送DTMF
/**
* 发送DTMF
* @param mContext Context
* @param keyCode KeyEnvent CODE
* @param call_dtmf 用于显示输入的keyCode值
* @return void
*/
UCSCall.sendDTMF(Context mContext, int keyCode, EditText call_dtmf)
7. 设置扬声器
/**
* 设置扬声器
* @param isSpeakerphoneOn false:关闭 true:打开
* @return void
*/
UCSCall.setSpeakerphone(boolean isSpeakerphoneOn)
8. 获取扬声器状态
/**
* 获取扬声器状态
* @param
* @return boolean true:开启 ;false:关闭
*/
UCSCall.isSpeakerphoneOn()
9. 设置静音
/**
* 设置静音
* @param isMicMute true:静音 ;false:正常
* @return void
*/
UCSCall.setMicMute(boolean isMicMute)
10. 获取静音状态
/**
* 获取静音状态
* @param
* @return boolean true:静音 ;false:正常
*/
UCSCall.isMicMute()
11. 播放来电铃声
/**
* 播放来电铃声
* @param isVibrator:是否振动
* @return void
*/
UCSCall.startRinging(boolean isVibrator)
12. 停止播放来电铃声
/**
* 停止播放来电铃声
* @return void
*/
UCSCall.stopRinging()
13. 播放去电铃声
/**
* 播放去电铃声(彩铃)
* @param fileName 音频裸数据文件名称,为PCM格式,放在assets目录下
* @return void
*/
UCSCall .startCallRinging(String fileName) 如何转为PCM格式
14. 停止播放去电铃声
/**
* 停止播放去电铃声
* @return void
*/
UCSCall .stopCallRinging()
/**
* 注册VoIP电话监听器,监听VoIP电话的各种状态
* @param csl CallStateListener监听器实例
* @return void
*/
UCSCall. addCallStateListener(CallStateListener csl)
2. 发起呼叫(不含回拨)
/**
*发起呼叫
* @param mContext 当前程序上下文 ApplicationContext
* @param callType 拨打电话方式,类型为: 0:直拨 1:免费 2:回拨
* @param calledNumber 被叫手机号码或Client账号
* @return void
*/
UCSCall. dial(Context mContext,CallType callType,String calledNumner);
3. 发起回拨呼叫
/**
* @param mContext
* @param calledNumner:被叫号码
* @param fromSerNum:呼叫主叫所要显示的号码(没有可以不传)
* @param toSerMum:呼叫被叫所要显示的号码(没有可以不传)
*/
UCSCall.callBack(Context mContext,String calledNumner,String fromSerNum,String toSerMum)
4. 释放通话
/**
* 释放通话
* @param callid 当前通话id (目前版本为空)
* @return void
*/
UCSCall.hangUp(String callid)
5. 接听来电
/**
* 被叫接听
* @param callid 当前通话id
* @return void
*/
UCSCall.answer(String callid)
6. 发送DTMF
/**
* 发送DTMF
* @param mContext Context
* @param keyCode KeyEnvent CODE
* @param call_dtmf 用于显示输入的keyCode值
* @return void
*/
UCSCall.sendDTMF(Context mContext, int keyCode, EditText call_dtmf)
7. 设置扬声器
/**
* 设置扬声器
* @param isSpeakerphoneOn false:关闭 true:打开
* @return void
*/
UCSCall.setSpeakerphone(boolean isSpeakerphoneOn)
8. 获取扬声器状态
/**
* 获取扬声器状态
* @param
* @return boolean true:开启 ;false:关闭
*/
UCSCall.isSpeakerphoneOn()
9. 设置静音
/**
* 设置静音
* @param isMicMute true:静音 ;false:正常
* @return void
*/
UCSCall.setMicMute(boolean isMicMute)
10. 获取静音状态
/**
* 获取静音状态
* @param
* @return boolean true:静音 ;false:正常
*/
UCSCall.isMicMute()
11. 播放来电铃声
/**
* 播放来电铃声
* @param isVibrator:是否振动
* @return void
*/
UCSCall.startRinging(boolean isVibrator)
12. 停止播放来电铃声
/**
* 停止播放来电铃声
* @return void
*/
UCSCall.stopRinging()
13. 播放去电铃声
/**
* 播放去电铃声(彩铃)
* @param fileName 音频裸数据文件名称,为PCM格式,放在assets目录下
* @return void
*/
UCSCall .startCallRinging(String fileName) 如何转为PCM格式
14. 停止播放去电铃声
/**
* 停止播放去电铃声
* @return void
*/
UCSCall .stopCallRinging()