Share via


Windows 미디어 플레이어 컨트롤에서 스킨 사용

[이 페이지와 연결된 기능인 Windows 미디어 플레이어 SDK는 레거시 기능입니다. MediaPlayer로 대체되었습니다. MediaPlayer는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows 미디어 플레이어 SDK 대신 MediaPlayer를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

C++ 프로그램에 Windows 미디어 플레이어 컨트롤을 포함하는 경우 스킨 정의 파일을 적용하여 플레이어 UI(사용자 인터페이스)를 사용자 지정할 수 있습니다. 스킨 정의 파일은 표준 및 사용자 지정 가능한 UI 구성 요소와 함께 제공되는 그래픽의 레이아웃을 지정하는 XML 기반 문서입니다. Microsoft JScript를 사용하여 이러한 구성 요소의 동작을 지정하고 C++ 및 COM 구문의 오버헤드 없이 Windows 미디어 플레이어 컨트롤을 조작할 수 있습니다.

스킨을 사용하면 사용자 인터페이스 코드와 기본 프로그램 코드를 별도로 유지 관리하여 독립적으로 개발할 수 있습니다. 또한 원래 스킨 모드에서 독립 실행형 플레이어에서 사용하도록 디자인된 스킨을 다시 사용할 수도 있습니다. C++ 프로그램을 위해 특별히 디자인한 스킨 코드는 프로그램에서 제공할 수 있는 스크립트 가능 개체를 통해 프로그램과 상호 작용할 수 있습니다.

Windows 미디어 플레이어 컨트롤에 스킨 모드를 사용하도록 설정하려면 프로그램에서 IWMPRemoteMediaServices 인터페이스를 구현해야 합니다. 컨트롤과 함께 스킨을 사용하고 컨트롤을 원격으로 동시에 사용할 수 있지만 이 인터페이스를 사용하여 다른 기능을 사용하도록 설정하지 않고도 두 기능 중 하나를 사용하도록 설정할 수 있습니다. 원격을 사용하지 않도록 설정하려면 GetServiceType 메서드의 out 매개 변수로 "Local" 값을 전달하고 GetApplicationName 메서드에서 E_NOTIMPL HRESULT를 반환하면 됩니다.

Windows 미디어 플레이어 컨트롤을 스킨 모드로 전환하려면 IWMPPlayer::p ut_uiMode 메서드를 호출하여 "custom" 값을 전달합니다. IWMPRemoteMediaServices::GetCustomUIMode 메서드에서 반환하여 사용할 스킨 정의 파일의 경로 및 파일 이름을 지정합니다.

스킨과 프로그램 간의 통신을 위해 스크립트 가능한 개체를 제공하려면 IWMPRemoteMediaServices::GetScriptableObject 메서드의 두 개의 out 매개 변수로 IDispatch 포인터에 이름과 포인터를 전달합니다. 그러면 스킨이 플레이어 전역 특성과 유사한 전역 특성인 것처럼 지정된 이름을 사용하여 스크립팅 가능한 개체를 호출할 수 있습니다.

원격 Windows 미디어 플레이어 컨트롤에 적용된 스킨은 playerApplication이라는 다른 전역 특성을 사용하여 PlayerApplication 개체에 액세스할 수 있습니다. 스킨에서 Player.playerApplication 속성에 액세스할 수 없으므로 스킨 코드에서 도킹 및 도킹 해제를 관리하려면 이 전역 특성을 사용해야 합니다.

샘플

Windows 미디어 플레이어 SDK 설치 패키지는 Windows 미디어 플레이어 컨트롤에 스킨을 적용하는 방법을 보여 주는 샘플을 설치합니다. 자세한 내용은 RemoteSkin 샘플을 참조하세요.

샘플

C++ 프로그램에서 Windows 미디어 플레이어 컨트롤 사용