实时语音通话系列文章四。本篇讲述Windows环境下集成即构科技语音通话SDK,实现语音通话功能流程。

一、SDK集成指引

1、准备环境

请确保开发环境满足以下技术要求:

  • Visual Studio 2013以上版本

    Windows7、Windows8、Windows10或以上版本

    麦克风、摄像头等支持音视频功能的外部设备

2、下载 SDK

请从 ZegoAudioRoom Windows 下载 SDK。

如果要实现播放本地音频、视频文件的功能(可用于播放背景音乐,播放MV,播放直播音效等场景),请下载包含 MediaPlayer 功能的 SDK,请下载 ZegoAudioRoom_MediaPlayer Windows。

3、集成SDK

3.1 SDK目录说明

SDK包含两个目录,每个目录包含的文件如下。

1、include目录—————包含SDK头文件,API具体参数及说明

2、libs目录——————–包含SDK的.lib和.dll文件

3.2 工程设置

将include目录加入到头文件搜索路径

·工程目录选项右键”属性”–>”C/C++”–>”常规”–>在附加包含目录中添加include目录

将libs\Release目录加入到库搜索路径

·工程目录选项右键”属性”–>”链接器”–>”常规”–>在附加库目录中添加libs目录

指定链接库ZegoAudioRoom.lib

·工程目录选项右键”属性”–>”链接器”–>”输入”–>在附加依赖项中添加ZegoAudioRoom.lib

将ZegoAudioRoom.dll复制到二进制运行文件所在目录下。

二、功能实现流程

实时语音场景的典型之一是,同一会话中的成员进行实时语音对话。

以 2 人间的实时语音为例,主要流程如下:

1、登录房间

用户间进行实时语音对话前,需要先登录到同一个房间。

AudioLive 中登录相关源码片段演实时语音示如下,仅供参考:

ZegoMainDialog.cpp// 登录房间,成功后将会在OnLoginRoom中回调
AUDIOROOM::LoginRoom(sessionID);void ZegoAudioLive::OnLoginRoom(int errorCode, const QString& roomID)
{if (errorCode == 0){addLogString(QStringLiteral("加入session成功"));if (isManual){ui.m_switchStartPublish->setText(QStringLiteral("开始直播"));ui.m_switchStartPublish->setEnabled(true);}}else{addLogString(QStringLiteral("加入session失败: %1").arg(errorCode));}
}

2、发布直播

房间内成员均可发布直播,用户进入房间成功,默认会自动发布直播。此时 SDK 会自动开始推流,用户无需手动触发。

AudioLive 中手动发布直播相关源码片段演示如下,仅供参考:

ZegoMainDialog.cpp// 用户主动点击发布直播按钮
void ZegoAudioLive::OnButtonClickedPublish()
{if (ui.m_switchStartPublish->text() == QStringLiteral("进入")){...//不能重复点击ui.m_switchStartPublish->setEnabled(false);//获取SessionIDm_sessionID = ui.m_edSessionID->text();//以当前时间去生成流IDQTime currentTime = QTime::currentTime();int ms = currentTime.msec();QString strStreamId;strStreamId = QString(QStringLiteral("s-windows-%1-%2")).arg(m_strEdUserId).arg(ms);m_strPublishStreamID = strStreamId;AUDIOROOM::LoginRoom(m_sessionID.toStdString().c_str());AUDIOROOM::SetManualPublish(isManual);addLogString(QStringLiteral("开始加入session: %1").arg(m_sessionID));}...else if (ui.m_switchStartPublish->text() == QStringLiteral("开始直播")){AUDIOROOM::StartPublish();ui.m_switchStartPublish->setEnabled(false);}}

3、播放直播

房间内成员均可播放直播,登录房间成功后,SDK 会自动拉流播放直播。用户无需手动触发拉流。

4、结束音频直播

音频通话结束后的操作主要是登出房间、清理视图或数据等。开发者可按需调用。

AudioLive 中结束音频直播相关源码片段演示如下,仅供参考:

ZegoMainDialog.cpp// 关闭实时语音通话Dialog
void ZegoAudioLive::OnClose()
{streamList.clear();AUDIOROOM::LogoutRoom();this->close();
}

Windows语音通话SDK集成及功能实现(实时语音通话四)相关推荐

  1. iOS语音通话SDK集成指引(实时语音通话一)

    语音通话是通过语音并借助传输媒介的沟通方式.本系列文章将会介绍如何从零开始用即构科技音视频SDK实现双人至百万人语音通话.第一篇讲述iOS语音通话SDK集成指引. 1.准备环境 请确保开发环境满足以下 ...

  2. 讯飞语音唤醒SDK集成流程

    唤醒功能,顾名思义,通过语音,唤醒服务,做我们想做的事情. 效果图(开启应用后说讯飞语音或者讯飞语点唤醒) 源码下载 地址:http://download.csdn.net/detail/q48788 ...

  3. 高德地图--SDK集成--定位功能 地图定位搜索

    最近项目需要到高德定图定位,就此记录下简单集成思路 下载文件之只放了libs和主要代码文件 https://download.csdn.net/download/qq_38355313/1035261 ...

  4. ios开发 多人语音聊天_iOS语音通话功能实现流程(实时语音通话二)

    上一篇我们讲述了iOS语音通话SDK集成指引,今天就来看下iOS下实时语音通话功能实现的流程.实时语音场景的典型之一是同一会话中的成员进行实时语音对话. 以 2 人间的实时语音为例,主要流程如下: 请 ...

  5. iOS语音通话功能实现流程(实时语音通话二)

    上一篇我们讲述了iOS语音通话SDK集成指引,今天就来看下iOS下实时语音通话功能实现的流程.实时语音场景的典型之一是同一会话中的成员进行实时语音对话. 以 2 人间的实时语音为例,主要流程如下: 请 ...

  6. Android语音直播SDK

    本文讲述如何在Android环境下集成即构语音直播SDK,实现同一房间内的成员进行语音直播,有需要时也可进行实时语音通话. 请从 ZegoAudioRoom iOS 下载 SDK.如果要实现播放本地音 ...

  7. 腾讯会议突围背后:端到端实时语音技术是如何保障交流通畅的?

    腾讯会议去年推出,疫情期间两个月急速扩容,日活跃账户数已超过1000万,成为了当前中国最多人使用的视频会议应用.腾讯会议突围背后,是如何通过端到端实时语音技术保障交流通畅的?本文是腾讯多媒体实验室音频 ...

  8. 手游实时语音,你所不知道的那些事

    随着手机性能的提高,手游开始向复杂化发展.不再是以消消乐这种简单的小游戏为主,RPG.实时对战类游戏开始变火.这种游戏,由于有玩家间的交互,有团队作战.配合,保证玩家能够进行实时语音通话,成为极大的需 ...

  9. 语音识别方案 - 联想语音团队多场景实时语音文字转换方案

    [本文转载自联想乐语音论坛] 语音技术一直是人工智能的重要领域之一,其应用也日益广泛.语音技术本身也包括许多细分领域,如远场语音识别.副语言语音属性.说话人日志.声纹识别防欺骗攻击和零资源TTS等. ...

  10. 王者荣誉语音服务器,王者荣耀12.10体验服调整 游戏实时语音优化

    王者荣耀12.10体验服调整 游戏实时语音优化 (一)游戏实时语音优化 王者的实时语音一直是王者交流模块中最重要的一个模块,召唤师通过实时语音交流更好的与朋友开黑,更方便的交流战术.之前版本的实时语音 ...

最新文章

  1. 【BZOJ】1610: [Usaco2008 Feb]Line连线游戏(几何)
  2. Android内核和Linux内核的区别
  3. corba的兴衰_数据科学薪酬的兴衰
  4. tornado学习笔记day01-高并发性能web框架
  5. 2019ICPC亚洲区域赛日程与2019CCPC比赛日程
  6. 手机下载的Termux如何利用you-get 下载视频
  7. 账户维护账户服务器,win10重装之后卡在账户登录界面怎么办_网站服务器运行维护,win10,账户...
  8. Android基础整合项目之节日群发助手(三)
  9. 吴恩达NLP课程资料
  10. JAVA学习日志 关于dowhile在周易数字卦程序里的应用
  11. Arcmap矢量数据的基础编辑
  12. LOGO创意-IT行业-随记
  13. 【LG5055】可持久化文艺平衡树
  14. 一个人在家怎么做自媒体?4个靠谱平台,门槛低、变现很简单
  15. Labview调用EXE形式COM组件
  16. java 与或非_JAVA 或与非运算符 与()、或(|)、异或(^)
  17. Linux Deepin 新增英国肯特大学镜像服务
  18. 怎么把ubuntu系统从英文修改为中文界面
  19. Unity_飘伤害_053
  20. 计算机如何处理伯努利函数,行人检测 深度学习篇

热门文章

  1. 关于华为和荣耀手机升级鸿蒙系统之后无法连接magicbook多屏协同的问题
  2. 解决戴尔笔记本电脑插上耳机没反应,要重启才能识别
  3. python中iter是什么意思,python中iter的用途是什么?
  4. [大学物理实验-0]修约规则和常见的实验数据的处理
  5. mysql duplicated错误码_Mysql常见错误码讲解
  6. GC算法精解(五分钟让你彻底明白标记/清除算法)
  7. SFDC中的DEBUG
  8. Editor\Data\il2cpp/build/deploy/net471/il2cpp.exe did not run properly!
  9. 【原创 深度学习与TensorFlow 动手实践系列 - 4】第四课:卷积神经网络 - 高级篇...
  10. e4a浏览框本地HTML,E4A浏览器