ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WPF 음악파일 재생하기
    C#/WPF 2016. 4. 16. 18:55

    ※ 블로그를 이전하며 새롭게 포스팅했습니다. (링크)

     

     

    WPF에서 음악파일을 재생하는 방법입니다.

     

    음악파일을 재생하는 클래스가 있습니다. MediaPlayer() class입니다.

     

    이 클래스는 System.Windows.Media 네임스페이스에 있는데, 프로젝트를 생성하면 기본으로 using처리 되어있습니다.

     

    이 class의 사용법은 간단합니다.

     

    MediaPlayer media = new MediaPlayer();

    // 클래스 생성

     

    media.Open(new Uri(파일 전체 경로));

    // 파일 연결

     

    media.Play();

    // 재생

     

    media.Pause();

    // 일시정지

     

    media.Stop();

    // 정지

     

    media.Close();

    // 연결 끊기

     

    media.Position.ToString(@"mm\:ss"); 

    // 현재 재생되고 있는 분:시간

     

     

    재생하실 파일의 전체경로가 Uri형태로 필요합니다. OpenFileDialog로 받아왔을 경우, 예로

     

    1
    2
    3
    4
    5
    OpenFileDialog file = new OpenFileDialog();
    if (file.ShowDialog() == true)
    {
        media.Open(new Uri(file.FileName));
    }
    cs

    이러한 형식이 됩니다.

    (MP3 말고도 재생가능한 음악파일은 재생이 됩니다.)

     

    간단한 사용 예제입니다.

     

     

     

     

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public partial class MainWindow : Window
    {
        MediaPlayer media = new MediaPlayer();
     
        public MainWindow()
        {
            InitializeComponent();
        }
     
        private void BtnAdd_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.Filter = "MP3 files (*.mp3)|*.mp3|All files (*.*)|*.*";
            if (file.ShowDialog() == true)
            {
                media.Open(new Uri(file.FileName));
            }
        }
     
        private void BtnPlay_Click(object sender, RoutedEventArgs e)
        {
            media.Play();
        }
     
        private void BtnPause_Click(object sender, RoutedEventArgs e)
        {
            media.Pause();
        }
     
        private void BtnStop_Click(object sender, RoutedEventArgs e)
        {
            media.Stop();
        }
    }
    cs

     

     

    혹시 새로운 창을 띄워 미디어를 재생하신다면, Close()를 꼭 호출해주셔야 합니다. 호출해주시지 않으시면 해당 창이 닫혀도 음악이 계속 재생되게 됩니다.

     

    예. 

    1
    2
    3
    4
    private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        media.Close();
    }
    cs

     

    이러한 식으로 Window의 Closing이나 Closed 이벤트에서 처리해주셔야 합니다.

     

     

    'C# > WPF' 카테고리의 다른 글

    WPF Uri 상대경로  (2) 2016.11.08
    WPF 마우스 휠 이벤트  (0) 2016.05.16
    WPF FontDialog 사용하기  (0) 2016.04.19
    TextBox 숫자만 입력 가능하게 하기  (0) 2016.04.14
    WPF에서 듀얼 모니터 전체화면  (0) 2016.04.10

    댓글

GiGong