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