1. #include "webrtc\voice_engine\include\voe_base.h"
  2. #include "webrtc\voice_engine\include\voe_hardware.h"
  3. #include "webrtc\voice_engine\include\voe_errors.h"
  4. VoiceEngine* pVoeEngine;
  5. VoEHardware* pVoeHw;
  6. VoEBase* pVoeBase ;
  7. int main(int argc,char** argv)
  8. {
  9. pVoeEngine = VoiceEngine::Create();            // Get VoideEngine Factory
          pVoeBase = VoEBase::GetInterface(pVoeEngine);  // Use Voe Factor to get Voe Interface
  1. pVoeBase->Init();       // Voe must init
  2. pVoeHw = VoEHardware::GetInterface(pVoeEngine);
  3. {
  4. int res = 0 ;
  5. int rd(0), pd(0);
  6. res = pVoeHw->GetNumOfRecordingDevices(rd);
  7. res = pVoeHw->GetNumOfPlayoutDevices(pd);
  8. char dn[128] = { 0 };
  9. char guid[128] = { 0 };
  10. printf("\nPlayout devices (%d): \n", pd);
  11. for (int j = 0; j < pd; ++j) {
  12. res = pVoeHw->GetPlayoutDeviceName(j, dn, guid);
  13. printf(" %d: %s \n", j, dn);
  14. }
  15. printf("Recording devices (%d): \n", rd);
  16. for (int j = 0; j < rd; ++j) {
  17. res = pVoeHw->GetRecordingDeviceName(j, dn, guid);
  18. printf(" %d: %s \n", j, dn);
  19. }
  20. printf("Select playout device: ");
  21. //ASSERT_EQ(1, scanf("%d", &pd));
  22. res = pVoeHw->SetPlayoutDevice(pd);
  23. printf("Select recording device: ");
  24. //ASSERT_EQ(1, scanf("%d", &rd));
  25. printf("Setting sound devices \n");
  26. res = pVoeHw->SetRecordingDevice(rd);
  27. }
  28. }
 

VoiceEngine和VideoEngine一样, 使用Factory Model模式,Factory Model使用流程:
1.  创建VoiceEngine或者VideoEngine, 例如: VoiceEngine::Create() 
2.  获取Engine的Interface, VoEBase::GetInterface(), Engine Interface获取必须init();
3. 在factory下,有很多interface,都可以利用2中方法获取。
4.  使用完释放:    Terminate(),每个interface都要release();最后VoiceEngine::Delete( engine object);

VoiceEngine获取硬件信息的更多相关文章

  1. WMI 获取硬件信息的封装函数与获取联想台式机的出厂编号方法

    原文:WMI 获取硬件信息的封装函数与获取联想台式机的出厂编号方法 今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都是可以提取出来的,就自己把那些公共部分提出出来,以后如果要获取 某部分的 ...

  2. linux下dmidecode命令获取硬件信息

    linux下dmidecode命令获取硬件信息 2 A+ 所属分类:Linux 运维工具 dmidecode在 Linux 系统下获取有关硬件方面的信息.dmidecode 遵循 SMBIOS/DMI ...

  3. C#获取硬件信息

    //硬件信息 public class GF_Hardware { /// <summary> /// cpu序列号 /// </summary> /// <return ...

  4. ansible facts 获取硬件信息

    facts 指的是 ansible_facts 变量,ansible 中使用 setup 模块来获取,包含系统的大部分基础硬件信息, [root@10_1_162_39 host_vars]# ll ...

  5. 获取硬件信息的delphi源码CPUID、操作系统、Mac物理地址、计算机名称、IP地址、用户名

    {-----------------------------------------------------------------------------作者:sushengmiyan 2013.0 ...

  6. Web网站中利用JavaScript中ActiveXObject对象获取硬件信息(显示器数量、分辨率)从而进行单双屏跳转

    前言:最近这两天工作上,要实现一个功能,在好友阿聪的帮助下,算是比较好的解决了这个需求. B/S的Web网站,需要实现点击按钮时,根据客户端连接的显示屏(监视器)数量进行,单双屏跳转显示新页面. 由于 ...

  7. Powershell获取硬件信息

    1.获取系统的BIOS的信息: Get-WMIObject -Class Win32_BIOS 2.获取内存信息: Get-WMIObject -Class Win32_PhysicalMemory ...

  8. C#通过WMI获取硬件信息

    有时候需要得到硬件信息绑定用户登录 代码如下: private string GetProcessSerialNumber() { try { ManagementObjectCollection P ...

  9. 使用dmidecode在Linux下获取硬件信息

    dmidecode命令可以让你在Linux系统下获取有关硬件方面的信息.dmidecode的作用是将DMI数据库中的信息解码,以可读的文本方式显示.由于DMI信息可以人为修改,因此里面的信息不一定是系 ...

随机推荐

  1. docker 容器日志集中 ELK + filebeat

    docker 容器日志集中 ELK ELK 基于 ovr 网络下 docker-compose.yaml version: '2' networks: network-test: external: ...

  2. SpringMVC强大的数据绑定

    6.6.2.@RequestParam绑定单个请求参数值 @RequestParam用于将请求参数区数据映射到功能处理方法的参数上. public String requestparam1(@Requ ...

  3. Android Studio的使用(一)--显示行号、快速查找方法源

    1.显示行号,只需要右击编辑窗体的边界就可以了.(这种方法只能临时显示,下次打开文件就没了,对其他文件也没用). 2.永久显示行号 3.查找某个变量.类.方法定义的源头,同时可以查找布局文件,资源文件 ...

  4. c语言基本数据类型short、int、long、char、float、double

    C 语言包含的数据类型如下图所示: 一.数据类型与“模子”short.int.long.char.float.double 这六个关键字代表C 语言里的六种基本数据类型. 怎么去理解它们呢? 举个例子 ...

  5. HDU 5616 Jam's balance

    背包.dp[i]=1表示i这种差值能被组合出来,差值有负数,所以用sum表示0,0表示-sum,2*sum表示sum. 询问X的时候,只需看dp[sum+X]或者dp[sum-X]是否有一个为1,注意 ...

  6. mybatis+spring事务

    http://www.mybatis.org/spring/zh/transactions.html 第四章 事务 一个使用 MyBatis-Spring 的主要原因是它允许 MyBatis 参与到 ...

  7. unity3d热更新解决方案,使用ulua插件开发的框架。

    ulua插件下载地址 www.ulua.org,下面要说的是ulua的开发框架. 首先是 LuaLoader 类,它负责把一个 lua 的 table 加载起来,使此 lua 的 table 像一个 ...

  8. Android面试题随笔1

    1.如何让一个应用在手机上产生两个或多个图标? 在清单文件中的activity节点下配置如下:[5,7行代码] <activity android:name=".MainActivit ...

  9. sql 里的 IF ELSE 语句用法

      IF ELSE 语句 IF ELSE 是最基本的编程语句结构之一几乎每一种编程语言都支持这种结构而 它在用于对从数据库返回的数据进行检查是非常有用的TRANSACT-SQL 使用IF ELSE 的 ...

  10. MySQL密码过期策略

    如果要设置密码永不过期的全局策略,可以这样:(注意这是默认值,配置文件中可以不声明) [mysqld] default_password_lifetime=0 禁用密码过期: ALTER USER ' ...