Поделиться через


DuckingCaptureSample

В этом примере приложения демонстрируется открытие и закрытие потоков коммуникации, что приводит к возникновению событий утки, которые приложение может получить для реализации аттестации потока. Это приложение реализует клиент чата, использующий API Core Audio для чтения звуковых данных с устройства связи и воспроизведения на выходном устройстве.

Эта тема описана в следующих разделах.

Description

В этом примере показаны следующие функции.

  • API MMDevice для перечисления и выбора мультимедийных устройств.
  • WASAPI для доступа к данным записи и отрисовки устройств, операций управления потоками и обработки событий утки.
  • API-интерфейсы WAVE для доступа к устройству связи и записи звуковых входных данных.

Требования

Продукт Версия
Windows SDK Windows 7
Visual Studio 2008

 

Скачивание примера

Этот пример доступен в следующих расположениях.

Расположение Путь или URL-адрес
Пакет Windows SDK \Program Files\Microsoft SDKs\Windows\v7.0\Samples\Multimedia\Audio\DuckingCaptureSample\...

 

Построение образца

Чтобы создать пример DuckingCaptureSample, выполните следующие действия:

  1. Откройте DuckingCaptureSample.sln в Visual Studio 2008.
  2. В окне выберите конфигурацию решения отладки или выпуска, выберите меню "Сборка" в строке меню и выберите параметр "Сборка". Если вы не открываете Visual Studio из оболочки CMD для пакета SDK, Visual Studio не будет иметь доступа к среде сборки пакета SDK. В этом случае пример не будет создаваться, если вы явно не задали переменную среды MSSdk, которая используется в файле проекта DuckingCaptureSample.vcproj.

Запуск примера

При успешной сборке приложения создается исполняемый файл, DuckingCaptureSample.exe. Чтобы запустить его, выберите "Начать отладку" или "Начать без отладки" в меню отладки или DuckingCaptureSample введите в командном окне.

DuckingCaptureSample предоставляет пользователю две реализации для записи звука с устройства консоли по умолчанию: WASAPI и API волны. Чтобы запустить сеанс записи, выберите режим и нажмите кнопку "Пуск " в пользовательском интерфейсе приложения. Чтобы завершить сеанс, нажмите кнопку "Остановить". В зависимости от устройства, указанного пользователем (входными или выходными данными), приложение использует API MMDevice для получения ссылки на отрисовку или запись устройства связи по умолчанию. После запуска сеанса чата приложение выполняет следующие задачи:

  • Создает и инициализирует звуковой клиент в режиме на основе событий.
  • Связывает клиента с дескриптором событий, который сигнализирует о том, что примеры готовы к захвату или отрисовке.
  • Настраивает клиент записи и клиент отрисовки для транспорта.
  • Создает поток чата и запускает звуковой модуль.

Для записи звуковых данных с каждым проходом обработки пример использует клиент записи, чтобы получить общий объем захваченных данных, доступных в буфере, считывать данные с устройства ввода по умолчанию, а также освободить пакет и сделать буфер доступным для чтения следующего набора захваченных данных.

Для отрисовки приложение определяет объем данных, которые помещается в очередь для воспроизведения в буфере конечной точки записи. Он соответственно записывает в буфер и освобождает буфер в подготовке к следующему проходу обработки до тех пор, пока все данные не будут записаны. Для отрисовки автоматические кадры предварительно создаются, чтобы предотвратить сбой звукового модуля при запуске. DuckingCaptureSample также показывает, как скрыть поток отрисовки от миксера томов.

Дополнительные сведения о функции аттестации потока см. в разделе "Использование устройства связи".

Примеры пакета SDK, использующие основные API аудио