C#으로 엑셀 파일을 저장하는 방법에 대해 알아보겠습니다.
WPF 프로그램에서 음악 파일을 재생하는 방법에 대한 글입니다.
※ 이 포스트는 과거 티스토리 블로그의 글을 개선한 글입니다.
편의를 위해 using을 추가해줍니다.
1
2
3
4
5
6
7
8
9
10
11
using System.Windows.Media;
...
private readonly MediaPlayer player = new MediaPlayer();
...
player.Open(new System.Uri(file.FileName));
player.Play();
player.Position.ToString(@"mm\:ss");
player.Pause();
player.Stop();
player.Close();
...
OpenFileDialog를 활용해 간단하게 만든 예시입니다.
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
35
36
37
38
39
40
41
42
using Microsoft.Win32;
using System;
using System.Windows;
using System.Windows.Media;
...
public partial class MainWindow : Window
{
private readonly MediaPlayer player = new MediaPlayer();
...
private void Open_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog file = new OpenFileDialog();
if (file.ShowDialog() == true)
{
player.Open(new Uri(file.FileName));
lblFileName.Content = System.IO.Path.GetFileNameWithoutExtension(file.FileName);
}
}
private void Pause_Click(object sender, RoutedEventArgs e)
{
player.Pause();
}
private void Play_Click(object sender, RoutedEventArgs e)
{
player.Play();
lblMusicPosition.Content = player.Position.ToString(@"mm\:ss");
}
private void Stop_Click(object sender, RoutedEventArgs e)
{
player.Stop();
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
player.Close();
}
}
먼저 MediaPlayer라는 클래스를 선언, 초기화해준 뒤 사용할 수 있습니다. Player변수 하나하나가 각각 플레이어라고 생각하시면 됩니다.
현재 Single Window이기 때문에 Close를 해주지 않아도 큰 문제가 없지만 Multi Window 상황에서 Close를 해주지 않을 경우 해당 Window를 닫아도 Media가 계속 재생되는 상황이 발생할 수 있습니다.
포스트의 예시를 사용한 샘플 WPF 프로젝트를 GitHub에 올려놓았으니 보시면서 이해, 활용하시면 좋을 것 같습니다.