C#/WPF

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 이벤트에서 처리해주셔야 합니다.