CaptureSharedTimerDriven
此示例应用程序使用核心音频 API 从用户指定的输入设备捕获音频数据,并将其写入当前目录中唯一命名的.wav文件。 此示例演示计时器驱动的缓冲。
本主题包含以下部分。
描述
此示例演示了以下功能。
- MMDevice API 进行多媒体设备枚举和选择。
- 流管理作的 WASAPI。
要求
产品 | 版本 |
---|---|
Windows SDK | Windows 7 |
Visual Studio | 2008 |
下载示例
此示例在以下位置可用。
位置 | 路径/URL |
---|---|
Windows SDK | \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedTimerDriven\... |
生成示例
若要生成 CaptureSharedTimerDriven 示例,请使用以下步骤:
- 打开 Windows SDK 的 CMD shell 并更改为 CaptureSharedTimerDriven 示例目录。
- 在 CaptureSharedTimerDriven 目录中运行命令
start WASAPICaptureSharedTimerDriven.sln
,在 Visual Studio 窗口中打开 WASAPICaptureSharedTimerDriven 项目。 - 在窗口中,选择 调试 或 发布 解决方案配置,从菜单栏中选择 生成 菜单,然后选择 生成 选项。 如果未从 SDK 的 CMD shell 打开 Visual Studio,Visual Studio 将无法访问 SDK 生成环境。 在这种情况下,除非显式设置在项目文件 WASAPICaptureSharedTimerDriven.vcproj 中使用的环境变量 MSSdk,否则此示例不会生成。
运行示例
如果成功生成演示应用程序,则会生成可执行文件 WASAPICaptureSharedTimerDriven.exe。 若要运行它,请在命令窗口中键入 WASAPICaptureSharedTimerDriven
,后跟必需或可选参数。 以下示例演示如何通过在默认多媒体设备上指定捕获持续时间来运行示例。
WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia
下表显示了参数。
论点 | 描述 |
---|---|
-? | 显示帮助。 |
-h | 显示帮助。 |
-l | 音频捕获延迟(以毫秒为单位)。 |
-d | 音频捕获持续时间(以秒为单位)。 |
-m | 禁用 MMCSS 的使用。 |
-安慰 | 使用默认控制台设备。 |
-通信 | 使用默认通信设备。 |
-多媒体 | 使用默认多媒体设备。 |
-端点 | 使用开关值中指定的终结点标识符。 |
如果应用程序在没有参数的情况下运行,它将枚举可用的设备,并提示用户为捕获会话选择设备。 将列出默认控制台、通信和多媒体设备,后跟设备和终结点标识符。 如果未指定持续时间,则从指定设备捕获音频流 10 秒。 应用程序将捕获的数据写入唯一命名.wav文件。
CaptureSharedTimerDriven 演示计时器驱动的缓冲。 在此模式下,客户端必须等待一段时间(一半延迟,由 -d 开关值指定的延迟(以毫秒为单位)。 当客户端唤醒时,在处理期间一半时,它会从引擎拉取下一组样本。 在缓冲循环中传递每个处理之前,客户端必须找出可用的捕获数据量,以便数据不会超过捕获缓冲区。 可以通过启用事件驱动的缓冲来处理从指定设备捕获的音频数据。 CaptureSharedEventDriven 示例中演示了此模式。
相关主题
-
使用核心音频 API 的 SDK 示例