현재 나의 주요 목표는 모든 로컬 컴퓨터의 Audio Endpoint Devices에 대한 자세한 정보를 얻는 것입니다. 이것이 오디오 주변 장치를 나타내는 객체입니다. 나는 어떤 논리에 기초하여 기록 할 장치를 선택할 수 있기를 원한다. (또는 결국 수동으로 그렇게 할 수있다.)Windows 오디오 끝점 API. 내 오디오 장치 이름 얻기
내가 지금까지 가지고있는 것이있다. 나는 C++에 익숙하지 않기 때문에 이러한 모든 추상 클래스를 다루는 것이 조금 까다 롭습니다. 따라서 코드 품질에 대해서도 자유롭게 의견을 말하십시오. http://msdn.microsoft.com/en-us/library/windows/desktop/dd371414(v=vs.85).aspx 이는 IMMDevice
이 장치의 컬렉션을 포함 할 것으로 보인다 반면, 하나의 오디오 엔드 포인트 장치를 나타낼 것으로 예상되는 유형입니다 : 현재
//Create vector of IMMDevices
UINT endpointCount = NULL;
(*pCollection).GetCount(&endpointCount);
std::vector<IMMDevice**> IMMDevicePP; //IMMDevice seems to contain all endpoint devices, so why have a collection here?
for (UINT i = 0; i < (endpointCount); i++)
{
IMMDevice* pp = NULL;
(*pCollection).Item(i, &pp);
IMMDevicePP.assign(1, &pp);
}
내 기술적 인 목표는이 인터페이스를 구현하는 객체를 얻는 것입니다. 그러나 IMMEndpoint
에만 GetDataFlow
라는 메서드가 포함되어 있으므로 도움이 될지 확실하지 않습니다. 다시 말하지만 오디오를 녹음하고 스트리밍 할 엔드 포인트 장치를 쉽게 선택하는 것이 목표입니다.
제안 사항? 잘못된 API를 사용하고 있습니까? 이 API는 실제로 오디오의 실제 스트리밍 및 샘플링에 좋은 명령을 가지고 있지만 원하는 장치를 사용하고 있는지 확인하는 방법에 대해서는 약간 분실되어 있습니다.
저는 각 IMMDEVICE에 대해 유형을 'PROPVARIANT'로 좁혔습니다. 그러나 이제는이 거대한 구조를 탐색하여 내 장치에 유용한 것을 찾는 방법을 모르겠습니다. 이 문서는 다음과 같습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/aa380072(v=vs.85).aspx PROPVARIANT의 모든 구성원의 의미에 대해 나에게 계몽 할 수 있습니까? ? – gordlonious