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

C# 애플리케이션에서 Windows 미디어 플레이어 기능을 사용하려면 먼저 Microsoft Visual Studio Windows 미디어 플레이어 컨트롤 사용에 설명된 대로 구성 요소를 양식에 추가합니다.

다음 섹션에서는 비디오를 재생하고 사용자 지정 재생 및 중지 단추를 사용하는 애플리케이션을 만드는 방법을 설명합니다.

비디오 창 추가

폼에 Windows 미디어 플레이어 ActiveX 컨트롤을 추가합니다. 컨트롤의 크기를 조정한 다음 비디오 창을 표시할 위치에 배치합니다.

Windows 미디어 플레이어 컨트롤을 선택한 다음 uiMode 속성을 "none"으로 변경합니다. 이 설정은 UI 컨트롤을 숨깁니다. 사용자가 비디오를 재생하면 창에 표시됩니다. 오디오 전용 콘텐츠의 경우 시각화가 표시됩니다.

두 개의 단추 추가 및 폼 조정

이제 폼에 두 개의 단추를 추가합니다. 첫 번째 단추를 선택하고 Text 속성을 "재생"으로 변경합니다. 두 번째 단추를 선택하고 Text 속성을 "중지"로 변경합니다.

재생 코드 추가

재생 단추를 두 번 클릭하여 코드 창을 표시합니다. C#에서는 다음 코드가 표시됩니다.

private void button1_Click(object sender, System.EventArgs e)
{

}

두 중괄호 사이에 다음 줄을 추가합니다.

axWindowsMediaPlayer1.URL = @"c:\mediafile.wmv";

앞의 코드 예제에서 "axWindowsMediaPlayer1"은 Windows 미디어 플레이어 컨트롤의 기본 이름이며, "c:\mediafile.wmv"는 재생하려는 미디어 항목의 이름에 대한 자리 표시자입니다. 유효한 모든 파일 경로를 사용할 수 있습니다. @ 기호는 백슬라이시를 이스케이프 문자로 해석하지 않도록 컴파일러에 지시합니다.

Windows 미디어 플레이어 SDK의 디지털 미디어 콘텐츠를 Windows 미디어 플레이어 라이브러리에 추가한 경우 이 코드를 대신 사용할 수 있습니다.

axWindowsMediaPlayer1.currentPlaylist = axWindowsMediaPlayer1.mediaCollection.getByName("mediafile");

autoStart 속성은 기본적으로 true이므로 현재Playlist 또는 URL 속성을 설정할 때 Windows 미디어 플레이어 재생을 시작합니다.

중지 코드 추가

중지 단추를 두 번 클릭하여 코드 창을 표시합니다. C#에서는 다음 코드가 표시됩니다.

private void button2_Click(object sender, System.EventArgs e)
{

}

두 중괄호 사이에 다음 줄을 추가합니다.

axWindowsMediaPlayer1.Ctlcontrols.stop();

참고

Windows 미디어 플레이어 컨트롤의 관리 코드 래퍼는 Controls 개체를 Ctlcontrols로 노출하여 System.Windows 상속된 Controls 속성과의 충돌을 방지합니다. Forms.Control.

 

오류 처리 추가

Windows 미디어 플레이어 컨트롤은 잘못된 URL과 같은 오류가 발생하면 예외를 발생시키지 않습니다. 대신 이벤트를 신호로 표시합니다. 애플리케이션은 플레이어가 보낸 오류 이벤트를 처리해야 합니다.

이벤트 처리기를 만들려면 먼저 Windows 미디어 플레이어 컨트롤에 대한 속성 창 엽니다. 이벤트 목록에서 MediaError를 두 번 클릭합니다. 다음 코드가 표시됩니다.

private void Player_MediaError(object sender, _WMPOCXEvents_MediaErrorEvent e)
{
}

다음 코드를 메서드에 삽입하여 오류 처리 기능을 최소화할 수 있습니다. 오류에 대한 정보는 _WMPOCXEvents_MediaErrorEvent 인수에서 검색할 수 있습니다.

try
// If the Player encounters a corrupt or missing file, 
// show the hexadecimal error code and URL.
{
    IWMPMedia2 errSource = e.pMediaObject as IWMPMedia2;
    IWMPErrorItem errorItem = errSource.Error;
    MessageBox.Show("Error " + errorItem.errorCode.ToString("X") 
                    + " in " + errSource.sourceURL);
}
catch(InvalidCastException)
// In case pMediaObject is not an IWMPMedia item.
{
    MessageBox.Show("Error.");
} 

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