Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом примере приложения используются API Core Audio для записи звуковых данных с входного устройства, указанного пользователем, и записывает его в файл с уникальным именем .wav в текущем каталоге. В этом примере демонстрируется буферизация на основе таймера.
В этом разделе содержатся следующие разделы.
Описание
В этом примере показаны следующие функции.
- API MMDevice для перечисления и выбора мультимедийных устройств.
- WASAPI для операций управления потоками.
Требования
| Продукт | Версия |
|---|---|
| пакета SDK для Windows | Windows 7 |
| Visual Studio | 2008 |
Скачивание примера
Этот пример доступен в следующих расположениях.
| Местоположение | Путь или URL-адрес |
|---|---|
| Windows SDK | \Program Files\Microsoft SDKKs\Windows\v7.0\Samples\Multimedia\Audio\CaptureSharedTimerDriven\... |
Создание примера
Чтобы создать пример CaptureSharedTimerDriven, выполните следующие действия.
- Откройте оболочку CMD для пакета SDK для Windows и перейдите в пример каталога CaptureSharedTimerDriven.
- Выполните команду
start WASAPICaptureSharedTimerDriven.slnв каталоге CaptureSharedTimerDriven, чтобы открыть проект WASAPICaptureSharedTimerDriven в окне Visual Studio. - В окне выберите конфигурацию решения отладки или выпуска, выберите меню сборки сборки в строке меню и выберите параметр Сборка. Если вы не открываете Visual Studio из оболочки CMD для пакета SDK, Visual Studio не будет иметь доступа к среде сборки пакета SDK. В этом случае пример не будет создаваться, если вы явно не задаете переменную среды MSSdk, которая используется в файле проекта, WASAPICaptureSharedTimerDriven.vcproj.
Запуск примера
При успешной сборке демонстрационного приложения создается исполняемый файл WASAPICaptureSharedTimerDriven.exe. Чтобы запустить его, введите WASAPICaptureSharedTimerDriven в командном окне, а затем обязательные или необязательные аргументы. В следующем примере показано, как запустить пример, указав длительность записи на мультимедийном устройстве по умолчанию.
WASAPICaptureSharedTimerDriven.exe -d 20 -multimedia
В следующей таблице показаны аргументы.
| Аргумент | Описание |
|---|---|
| -? | Отображает справку. |
| -h | Отображает справку. |
| -l | Задержка записи звука в миллисекундах. |
| -d | Длительность записи звука в секундах. |
| -m | Отключает использование MMCSS. |
| -консоль | Используйте консольное устройство по умолчанию. |
| -связь | Используйте устройство связи по умолчанию. |
| -мультимедиа | Используйте мультимедийное устройство по умолчанию. |
| -конечная точка | Используйте идентификатор конечной точки, указанный в значении коммутатора. |
Если приложение выполняется без аргументов, оно перечисляет доступные устройства и предложит пользователю выбрать устройство для сеанса записи. За консолью, связью и мультимедийными устройствами по умолчанию указываются устройства и идентификаторы конечных точек. Если длительность не указана, аудиопоток из указанного устройства фиксируется в течение 10 секунд. Приложение записывает захваченные данные в файл с уникальным именем .wav.
CaptureSharedTimerDriven демонстрирует буферизацию на основе таймера. В этом режиме клиент должен ждать определенного периода времени (половина задержки, указанной значением переключателя -d в миллисекундах). Когда клиент проснется, на полпути до периода обработки он извлекает следующий набор примеров из подсистемы. Перед каждой передачей обработки в цикле буферизации клиент должен узнать объем доступных данных записи, чтобы данные не перезавернули буфер записи. Звуковые данные, полученные с указанного устройства, можно обрабатывать путем включения буферизации на основе событий. Этот режим показан в примере CaptureSharedEventDriven.
Связанные разделы
-
Примеры пакета SDK , использующие основные API аудио