다음을 통해 공유


디바이스 형식 기능 검색

애플리케이션은 파일을 보내기 전에 디바이스의 재생 기능을 확인하려고 시도할 수 있습니다. 디바이스가 보낼 파일의 형식을 처리할 수 없는 경우 애플리케이션은 디바이스에서 사용할 수 있는 형식으로 파일을 트랜스코딩하거나 디바이스가 요청된 파일을 지원할 수 없음을 사용자에게 알릴 수 있습니다.

대용량 스토리지 클래스 디바이스와 같은 일부 디바이스는 재생 기능이 없는 이동식 스토리지 미디어로만 사용될 수 있습니다. 이 경우 디바이스로 보내기 전에 애플리케이션에서 파일을 트랜스코딩하는 것은 적절하지 않습니다.

IWMDMDevice::GetType 메서드를 사용하면 디바이스에서 해당 기능을 보고할 수 있지만 일부 디바이스는 이 메서드에 대한 잘못된 값을 반환합니다. 디바이스에 파일을 복사하기 전에 사용자에게 재생이 의도된 것인지 물어보고, 그렇다면 디바이스의 보고된 형식 중 하나(또는 디바이스가 모든 형식에 대한 지원을 요청하는 경우 적절한 형식) 중 하나로 파일을 트랜스코딩하려고 시도할 수 있습니다. 또 다른 방법은 디바이스에서 지원하는 것으로 특별히 나열된 모든 형식이 재생을 위한 것이며 다른 모든 파일은 수정되지 않은 상태로 전송되어야 한다고 가정하는 것입니다.

전송할 파일의 형식과 디바이스에서 지원하는 형식을 검색한 후 코드 변환에 가장 적합한 대상 형식을 결정할 수 있습니다.

이전에는 애플리케이션이 속성에 대해 0을 반환하여 해당 속성의 모든 값에 대한 지원을 나타내는 것이 일반적이었습니다. 예를 들어 _WAVEFORMATEX.nSamplesPerSec 값은 모든 비트 속도에 대한 지원을 나타냅니다. 이제 모든 값에 대한 지원을 나타내는 권장 방법은 WMDM_PROP_DESC WMDM_ENUM_PROP_VALID_VALUES_ANY 지정하는 것입니다. ValidValuesForm. 그러나 일부 속성은 합법적으로 0을 반환하여 특정 지원을 나타낼 수 있습니다. 예를 들어 _BITMAPINFOHEADER.biSizeImage가 0으로 설정된 경우 BI_RGB 비트맵을 나타냅니다. 0 값에 대한 예외는 관련 구조에 대한 설명서에 나와 있습니다.

그러나 디바이스가 형식 기능을 제대로 또는 표준 방식으로 보고하지 않는 경우가 많습니다. 예를 들어 디바이스는 실제로 특정 형식 또는 형식 형식 내에서 특정 비트 전송률만 처리할 수 있는 경우 모든 형식을 지원한다고 보고합니다. 애플리케이션이 이러한 보고서를 수락해야 하는지 또는 디바이스의 재생 기능(예: 192kbps)에 대한 상한을 가정해야 하는지 여부를 결정하는 것은 사용자의 몫입니다.

디바이스의 형식 지원을 요청하는 데 권장되는 방법은 IWMDMDevice3::GetFormatCapability입니다. 이 메서드가 지원되지 않으면 애플리케이션이 IWMDMDevice::GetFormatSupport에서 대체되어야 합니다. GetFormatSupport는 GetFormatSupport2와 달리 비디오 정보를 반환하지 않습니다.

애플리케이션이 디바이스의 형식 기능을 요청하는 방법은 애플리케이션이 지원하는 인터페이스에 따라 달라집니다. 자세한 내용은 다음 항목을 참조하세요.

디바이스에 파일 쓰기