下面将以实现一个音频通话功能为示例详细介绍VoiceEngine的使用,在文末将附上相应源码的下载地址.这里参考的是voiceengine\voe_cmd_test. 第一步是创建VoiceEngine和相关的sub-apis // Create VoiceEngine related instance webrtc::VoiceEngine* ptrVoE = NULL; ptrVoE = webrtc::VoiceEngine::Create(); webrtc::VoEBase* ptrV…
把自己这两天学习VoiceEngine的成果分享出来,供大家参考,有什么问题也欢迎大家指出,一起学习一起进步. 本文将对VoiceEngine的基本结构做一个分析,分析的方法是自底向上的:看一个音频编码器是如何一层层被封装到VoiceEngine中的. 首先我们来看一下VoiceEngine的核心API,基本上就在webrtc\voiceengine\include的几个头文件中了.具体来说,voe_base-支持G.711编码的.RTP传输的全双工VoIP应用,若要支持其他编码器,则需要VoE…
本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine综合应用示例(一)——视频通话的基本流程 WebRTC VideoEngine综合应用示例(二)——集成OPENH264编解码器 WebRTC VideoEngine综合应用示例(三)——集成X264编码和ffmpeg解码 WebRTC技术的出现改变了传统即时通信的现状,它是一套开源的旨在建立浏览器端对端的通信标准的技术,支持浏览器平台,使用P2P架构.WebRTC所采用的技术都是当前VoIP先进的技术,如内部所采用的音频引…
我们有时候在音频通话过程中,想要改成视频通话.如果挂断当前通话再重新发起视频通话就会显得比较麻烦. 因此很多app提供了将音频通话升级成视频通话的功能,同时也有将视频通话降为音频通话的功能. 本文演示的是在本地模拟音频通话,并且将音频通话升级为视频通话. 准备 界面很简单,2个video加上几个按钮. <video id="localVideo" playsinline autoplay muted></video> <video id="rem…
随着信息技术的发展,人们对实时通信的需求不断增加,并逐渐成为工作生活中不可或缺的一部分.每年海量的音视频通话分钟数对互联网基础设施提出了巨大的挑战.尽管目前全球的互联网用户绝大多数均处于良好的网络状况,但仍有不少地区处于极差的网络条件下,除此之外,即使在网络良好区域,也仍会存在弱网现象.那么如何在有限的带宽下提供高质量的音频体验就成为了一个非常重要的研究方向. 在过去的几十年间,语音或音频的编码技术都涉及大量特定领域的知识,例如语音生成模型.近些年,随着深度学习类算法的快速发展,逐渐涌现出了多种…
以下内容摘自正在全面热销的最新网络设备图书“豪华四件套”之一<H3C路由器配置与管理完全手册>(第二版)(其余三本分别是:<Cisco交换机配置与管理完全手册>(第二版).<Cisco路由器配置与管理完全手册>(第二版)和<H3C交换机配置与管理完全手册>(第二版))  .目前本套图书在当当网.京东网.卓越网.互动出版网等书店全面热销中,在当当网.京东网购买该套装将直减30元:http://book.dangdang.com/20130730_aife.ht…
通过WebRTC实现实时视频通信(一) 通过WebRTC实现实时视频通信(二) 通过WebRTC实现实时视频通信(三) 在上一篇文章中,我们讲解了WebRTC的概述.历史.安全性和开发者工具.接下来我们通过WebRTC的三个API来具体的讲解构建WebRTC的流程,这篇文章会对MediaStream进行讲解. MediaStream (别名 getUserMedia) MediaStream API 代表媒体数据流的同步.举个例子,从相机获取的视频流的同步和跟踪. 理解MediaStream最简…
1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发进行详细的讲解. 目录树图 2. 功能实现 2.1.界面搭建 最终的界面如下图所示: 图1最终结果图 2.1.1 新建项目 选择“Window窗体应用程序”,设置程序的名称和保存路径即可.(新建完成后可以将程序的窗体名称右键重命名为“FormMain”,,将窗体界面的属性的Text设置名称为“PIE…
Github团队开发示例(二) 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/6063765.html 接之前讲的Github团队开发示例(一),本文主要讲了Github团队仓库中Milestones. 需求 在团队开发过程中,可以将项目周期分成几个阶段,各团队自己定义开始和截至时间,在每个时间段完成相应的任务. 比如:google/fonts Milestones就可以用来管理每个阶段需要完成的任务. 新建Milesones 在团队Github的…
原文:WPF命中测试示例(二)--几何区域命中测试 接续上次的命中测试,这次来做几何区域测试示例. 示例 首先新建一个WPF项目,在主界面中拖入一个按钮控件,并修改代码中的以下高亮位置: 当前设计视图界面如下: 接下来,转到窗体的“Window_Loaded”事件处理函数,编写函数代码: private void Window_Loaded(object sender, RoutedEventArgs e) { Random r = new Random(); ; i++) { var o =…