设备端Android版本LinkVisual SDK提供语音对讲功能,本文介绍实现语音对讲功能的过程。
下文简称设备端Android版本LinkVisual SDK为LinkVisual SDK。
前提条件
音频类型
语音对讲支持G711a、G711U以及AAC_LC编码方式,三种音频类型详细信息为:
选择编码方式前,请确认您的设备端IPC设备是否支持。
采样率:支持8 kHz和16 kHz。
支持编码。
支持解码。
对讲类型
语音对讲的类型及其注意事项如下:
类型 | 说明 | 注意事项 |
---|---|---|
单向对讲 | 应用端App采集并发送音频数据到设备端进行播放。 | 应用端App采集音频期间手机保持静音。 |
双向对讲 | 应用端App和设备端同时采集音频和播放音频。 | 设备端必须支持声学回声消除AEC(Acoustic Echo Cancellation),否则不建议使用该功能。 |
操作步骤
服务端下发开始推流指令后,执行如下操作:
通过事先注册的语音对讲事件监听器
OnLiveIntercomListener
通知开始语音对讲、结束语音对讲、接收对端的音频参数和接收对端的语音数据。通过流错误监听器监听推流中发生的错误,然后通知应用端App。
重要请不要在回调接口中执行阻塞任务。
详细实现过程如下:
选择对讲模式。
// 设置双向对讲模式 IPCDev.getInstance().setLiveIntercomModeBeforeInit(IPCLiveIntercomV2.LiveIntercomMode.DoubleTalk);
设置监听。
// 设置语音对讲事件监听 IPCDev.getInstance().getIpcLiveIntercom().setOnLiveIntercomListener(MainActivity.this); // 设置语音对讲错误回调 IPCDev.getInstance().getIpcLiveIntercom().setOnLiveIntercomErrorListener(MainActivity.this);
示例代码
注册语音对讲事件监听器和错误监听器的完整代码如下。
public interface OnLiveIntercomListener {
/**
* 收到应用端App发起的开始语音对讲请求
*
* @return 返回当前设备端上行音频参数格式,如采样率、通道数、采样位宽、音频格式, 请确保对应用端App能支持该音频参数配置
*/
AudioParams onStartVoiceIntercom();
/**
* 收到结束语音对讲请求
*/
void onStopVoiceIntercom();
/**
* 收到应用端App音频参数,表示与应用端App的通道已建立,可以开始对讲
* @param audioParams 应用端App的音频参数
*/
void onAudioParamsChange(AudioParams audioParams);
/**
* 收到应用端App发送的PCM数据,一般用来做UI展示,比如绘制音量大小
* @param buffer
* @param size
*/
void onAudioBufferReceive(byte[] buffer, int size);
}
public interface OnLiveIntercomErrorListener{
/**
* 语音对讲发生错误
* @param error 见{@link LiveIntercomError}
*/
void onError(LiveIntercomError error);
}
错误码
错误码 | 错误描述 | 解决方法 |
---|---|---|
LiveIntercomError.INVALID_AUDIO_PARAMS | 无效的设备端音频参数。 | 请检查设备端和应用端App的以下项目后重试:
|
LiveIntercomError.CONNECTION_STREAM_FAILED | 建立语音对讲流通道失败。 | 请确保网络连接正常后重试。 |
LiveIntercomError.SEND_STREAM_DATA_FAILED | 发送音频数据失败。 | 该错误通常由网络故障,或语音对讲对端主动关闭对讲导致,可忽略。 |
LiveIntercomError.INIT_RECORD_FAILED | 初始化录音机错误。 | 请检查并修复以下异常后重试:
|
LiveIntercomError.START_RECORD_FAILED | 启动录音机错误。 | 请检查是否有其它应用占用了录音机,终止应用进程并重试。 |
LiveIntercomError.READ_RECORD_BUFFER_FAILED | 读取录音机数据错误。 | 录音机异常,请重启设备后重试。 |
LiveIntercomError.INIT_AUDIO_PLAYER_FAILED | 创建音频播放器失败。 | 音频播放器异常,请重启设备后重试。 |