문제

시스템에 기본 녹음 장치가 설치되어 있는지 어떻게 알 수 있나요?Win32 API에 대한 몇 가지 호출을 통해 이 작업을 수행할 수 있을 것으로 확신합니다. 이에 대한 경험이 있는 사람이 있습니까?

제어판을 열고 사운드 옵션을 살펴보는 것이 아니라 코드를 통해 이 작업을 수행하는 것에 대해 이야기하고 있습니다.

도움이 되었습니까?

해결책

사용하여 다이렉트X SDK, 시스템의 각 DirectSoundCapture 장치에 대해 DSEnumCallback 함수를 호출하는 DirectSoundCaptureEnumerate를 호출할 수 있습니다.DSEnumCallback에 전달된 첫 번째 매개변수는 "열거 중인 장치를 식별하는 GUID의 주소 또는 기본 장치의 경우 NULL"인 LPGUID입니다.

녹음 장치가 있는지 확인하기만 하면 되는 경우(기본 장치를 알아야 하는 경우 이것만으로는 충분하지 않다고 생각합니다), waveInGetNumDevs를 사용할 수 있습니다.

#include <tchar.h>
#include <windows.h>
#include "mmsystem.h"

int _tmain( int argc, wchar_t *argv[] )
{
    UINT deviceCount = waveInGetNumDevs();

    if ( deviceCount > 0 )
    {
        for ( int i = 0; i < deviceCount; i++ )
        {
            WAVEINCAPSW waveInCaps;

            waveInGetDevCapsW( i, &waveInCaps, sizeof( WAVEINCAPS ) );

            // do some stuff with waveInCaps...
        }
    }

    return 0;
}

다른 팁

라는 오픈 소스 오디오 API가 있습니다. 포트오디오 사용할 수 있는 방법이 있습니다.나는 그 메소드가 Pa_GetDeviceInfo()라고 불리는 것 같아요.

win32 API에는 다음과 같은 기능이 있습니다. waveInGetNumDevs 그것을 위해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top