通过阅读本文,您可以了解1对1语音聊天Android端的集成操作。
环境要求
Android端具体环境要求,更多信息,请参见使用限制。
前提条件
- 服务端已集成并开启。具体操作,请参见服务端集成。
- 环境中已安装Android Studio 3.0或以上版本。更多信息,请参见Android Studio。
操作步骤
Demo目录结构说明
项目结构如下所示:
文件名 | 说明 |
---|---|
AlivcVoiceCall | 1队1语音聊天功能实现库。更多信息,请参见AlivcVoiceCall组件库目录说明。 |
AliyunVideoCommon | 公共组建库。 |
app | 程序入口。 |
thirdparty-lib | 第三方库的引用。 |
AlivcVoiceCall组件库目录说明,如下所示:
文件名 | 说明 |
---|---|
constant | 常量数据管理类。 |
network | 网络请求。 |
ui | 应用界面。 |
view | 自定义view。 |
主要功能说明
- 创建并加入房间。
重要 AliRtcEngieEventListener回调在子线程中,如果您想操作UI界面需要切换到主线程。
//创建AliRtcEngin实例。 mEngine = AliRtcEngine.getInstance(getApplicationContext()); //设置AliRtcAuthInfo用户信息,通过Server Api获取到用户信息和RTC服务器的Token信息,拿到信息后 //设置给AliRtcAuthInfo就可以调用joinChannel加入频道进行通话。 AliRtcAuthInfo userInfo = “从server端获取”; //调用joinChannel后在AliRtcEngieEventListener.onJoinChannelResult(int i)接受回调信息。 if (i != 0) { //加入房间失败。 } else { //加入房间成功。 }
- 用户推流。
当用户加入房间成功时可以调用推流方法来发布自己的音频信息让对方订阅, 也可以在加入房间之前调用
mEngine.setAutoPublish(true, true);
来实现主动推流和订阅。//true表示允许发布音频流,false表示不允许。 mEngine.configLocalAudioPublish(true); mEngine.publish();
- 播放伴奏。
startAudioAccompany方法只能播放一首歌,不支持多首同时播放 playAudioEffect可以播放之前预加载的音效。两个方法可以同时调用,可以一边推送播放背景音效,一个本地试听。
//播放当前音效并推送。loopCycles=-1时代表循环播放。 mEngine.startAudioAccompany(mSelectedBgmData.first.getPath(), false, false, -1); int i = mEngine.playAudioEffect(currBgm, file.getPath(), -1, false);
- 暂停伴奏。
mEngine.pauseAudioAccompany(); mEngine.pauseAudioEffect(soundId);
- 停止伴奏。
mEngine.pauseAudioAccompany(); mEngine.stopAudioEffect(currBgm);
- 恢复播放伴奏。
mEngine.resumeAudioAccompany(); mEngine.resumeAudioEffect(currBgm);
- 静音模式(停止发布本地音频流)。
mEngine.muteLocalMic(false);
- 取消静音模式(发布本地音频流)。
mEngine.muteLocalMic(true);
- 扬声器模式。
mEngine.enableSpeakerphone(true);
- 取消扬声器模式。
mEngine.enableSpeakerphone(false);
- 离开房间。
mEngine.leaveChannel();