Microsoft Visual Studio에서 Windows 미디어 플레이어 컨트롤 사용

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

Visual Studio의 도구 상자를 통해 Windows 미디어 플레이어 9 시리즈 이상 ActiveX 컨트롤을 .NET Framework 애플리케이션에 추가할 수 있습니다.

Windows 미디어 플레이어 컨트롤 추가

새 프로젝트를 만들기 전에 최신 버전의 Windows 미디어 플레이어 및 Windows 미디어 플레이어 SDK가 컴퓨터에 설치되어 있는지 확인합니다.

Visual Studio를 시작한 다음, 새 프로젝트를 만듭니다.

Visual Studio에서 도구 상자를 엽니다.

도구 상자의 구성 요소 부분에 Windows 미디어 플레이어 표시되지 않으면 다음을 수행합니다.

  1. 도구 상자 내에서 마우스 오른쪽 단추를 클릭한 다음 항목 선택을 선택합니다. 그러면 도구 상자 사용자 지정 대화 상자가 열립니다.

  2. COM 구성 요소 탭에서 Windows 미디어 플레이어 선택합니다.

    목록에 Windows 미디어 플레이어 표시되지 않으면 찾아보기를 클릭한 다음 Windows\System32 폴더에 있는 Wmp.dll 엽니다.

  3. 확인을 클릭합니다. Windows 미디어 플레이어 컨트롤은 현재 도구 상자 탭에 배치됩니다.

이제 도구 상자에서 Windows 미디어 플레이어 선택하고 양식에 추가할 수 있습니다.

Visual Studio는 Windows 미디어 플레이어 컨트롤에 "axWindowsMediaPlayer1"과 같은 기본 이름을 제공합니다. 이름을 "Player"와 같이 더 쉽게 기억할 수 있는 이름으로 변경할 수 있습니다.

도구 상자에서 Windows 미디어 플레이어 컨트롤을 추가하면 Visual Studio, AxWMPLib 및 WMPLib에서 만든 두 라이브러리에 대한 참조도 추가됩니다. 참조 아래의 솔루션 탐색기 찾을 수 있습니다.

플레이어 네임스페이스의 개체를 더 쉽게 사용하려면 다음과 같이 파일의 using 또는 imports 지시문에 네임스페이스를 포함해야 합니다.

using WMPLib;
imports WMPLib

지시문은 이름을 정규화하지 않고 Player 개체를 참조할 수 있도록 합니다.

참고

Windows 미디어 플레이어 컨트롤은 AxWMPLib 네임스페이스의 AxWindowsMediaPlayer 개체입니다. 그러나 AxWindowsMediaPlayer 클래스는 WMPLib 네임스페이스의 데이터 형식, 인터페이스 및 기타 요소를 사용합니다.

 

컨트롤의 표시 유형 구성

폼에 Windows 미디어 플레이어 컨트롤을 처음 추가하면 해당 컨트롤이 표시됩니다. 애플리케이션에서 플레이어의 표시되는 이미지를 사용하지 않으려면 다음 속성 중 하나를 설정하여 기본 Player를 숨깁니다.

속성
uiMode "보이지 않음"( Player.uiMode 참조)
Visible "false"
Size.Width 0
Size.Height 0

 

양식 디자이너에서 Windows 미디어 플레이어 컨트롤을 선택하면 코드 또는 속성 창에서 이러한 속성을 설정할 수 있습니다.

컨트롤의 개체 모델 호환성

Windows 미디어 플레이어 컨트롤의 개체 모델은 기본적으로 비관리 코드 및 스크립트와 .NET Framework 동일합니다. 그러나 요소가 노출되는 방식에는 차이가 있습니다.

  • 대부분의 개체는 기본 COM 인터페이스의 이름으로 노출됩니다. 예를 들어 재생 목록 개체는 IWMPPlaylist로 노출됩니다.
  • 일부 인터페이스에는 이후 버전이 있습니다. 예를 들어 IWMPMedia는 IWMPMedia2IWMPMedia3에서 추가 기능을 제공했습니다. 개체를 IWMPMedia로 선언하는 경우 일반적으로 모든 버전의 인터페이스 기능에 액세스할 수 있습니다. 그러나 IntelliSense®는 이후 버전 인터페이스의 메서드 또는 속성을 인식하지 못하며 Visual Basic .NET 편집기에서는 대문자를 자동으로 수정하지 않습니다. IntelliSense 및 Visual Studio의 다른 기능을 최대한 활용하려면 IWMPMedia3과 같은 최신 버전의 인터페이스를 사용하여 개체를 선언합니다.
  • 인덱싱된 속성(C#) 또는 기본 속성(Visual Basic .NET)이 없습니다. 예를 들어 Playlist.item을 검색하려면 C#에서 IWMPlaylist.get_Item 접근자 메서드를 호출하거나 Visual Basic .NET에서 IWMPlayist.Item 속성을 검색해야 합니다.
  • Windows 미디어 플레이어 Controls 속성과 모든 컨트롤에서 노출되는 Controls 속성 간의 명명 충돌로 인해 이 속성의 Player 버전은 ActiveX 컨트롤의 컨텍스트에서 CtlControls라고 합니다. 그러나 ActiveX 컨트롤이 아니라 프로그래밍 방식으로 플레이어를 만들 때는 그렇지 않습니다.

Visual Studio의 개체 브라우저를 사용하여 AxWMPLibWMPLib 네임스페이스에서 메서드 및 개체에 대한 올바른 API 이름을 찾습니다.

응용 프로그램 배포

애플리케이션을 배포할 때 애플리케이션 폴더에 AxInterop.WMPLib.dll 및 Interop.WMPLib.dll 설치해야 합니다. 또한 필요한 Windows 미디어 플레이어 버전이 사용자의 컴퓨터에 설치되어 있는지 확인해야 합니다.

프로그래밍 방식으로 Windows 미디어 플레이어 컨트롤 만들기

C# 솔루션에 Windows 미디어 플레이어 컨트롤 포함

Visual Basic .NET 솔루션에 Windows 미디어 플레이어 컨트롤 포함