728x90
1. using System.Media;
이 라이브러리를 사용 하면 .wav파일을 콘솔 상에서 재생할 수 있다.
새로운 쓰레드를 자동으로 생성해 주어 그 쓰레드에서 작동하여 아래에서 자신이 하고싶은 동작을 구현 할 수 있다.
SoundPlayer soundPlayer = new SoundPlayer("FIlePath.wav");
// 음악 반복 재생
soundPlayer.PlayLooping();
/*
todo
/*
// 음악 종료
soundPlayer.Stop();
단점 : 자체적으로 볼륨을 조절할 수 없다
2. NAudio.Wave 사용
Mp3 파일을 통해 음악을 재생할 수 있다.
음악의 볼륨을 코드를 통해 제어 할 수 있다.
- 클래스 선언
class Mp3Player
{
string audioFilePath;
AudioFileReader audioFile;
WaveOutEvent outputDevice;
public Mp3Player(string filePath)
{
audioFilePath = filePath;
audioFile = new AudioFileReader(audioFilePath);
outputDevice = new WaveOutEvent();
// 초기 필수
outputDevice.Init(audioFile);
}
public void Play()
{
outputDevice.Play();
}
public void PlayLooping()
{
outputDevice.PlaybackStopped += PlaybackStoppedHandler;
outputDevice.Play();
}
public void Stop()
{
outputDevice.PlaybackStopped -= PlaybackStoppedHandler;
outputDevice.Stop();
}
public void SetVolume(float volume)
{
outputDevice.Volume = volume;
}
public void Dispose()
{
outputDevice.Dispose();
audioFile.Dispose();
}
public void PlaybackStoppedHandler(object sender, StoppedEventArgs e)
{
// 오디오 파일의 위치를 처음으로 재설정
audioFile.Position = 0;
outputDevice.Play();
}
}
- 사용 예제
static void Main(string[] args)
{
// 오디오 파일 경로
string audioFilePath = "FilePath.mp3";
Mp3Player player = new Mp3Player(audioFilePath);
// 음악 반복 재생
player.PlayLooping();
// 음악 한번 재생
player.Play();
// volume 조절
player.SetVolume(0.5f);
// 음악 종료
player.Stop();
// 리소스 정리
player.Dispose();
}
대체로 많은 사이트에서 wav 파일보단 mp3 파일을 제공해 주고 mp3 을 wav로 변환하는데 용량이 커지므로
NAudio사용법을 인지해 두는것이 좋아 보인다.
728x90
'언어 정리 > c#' 카테고리의 다른 글
c# 기초 정리하기 - 진법변환, 및 확장형 메소드 (0) | 2024.11.07 |
---|---|
c# console Text RPG (0) | 2024.05.10 |
c# 2차원 배열 정렬 방법 (0) | 2024.01.15 |
c# int[,]와 int[][]의 차이점 (0) | 2024.01.11 |
c# NewtonSoft.json 활용 데이터 저장 <interface 데이터 추가> (0) | 2024.01.07 |