오류내용
오류원인
해결방법
오류내용
"Windows Media Player 10 이상이 필요합니다."
Windows 11 환경에서 mp3 파일을 직접 실행하는 경우에는 정상적으로 소리가 재생된다.
하지만 아래와 같이 C# WPF 프로그램에서 MediaPlayer로 mp3 파일을 재생하려고 하면,
아무런 소리가 나지 않는 현상이 발생했다.
private MediaPlayer _mediaPlayer;
private void PlaySound()
{
try
{
string mp3FilePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Sound.mp3");
// 파일이 존재하는지 확인
if (!System.IO.File.Exists(mp3FilePath))
{
LogHelper.Instance.WriteLog("mp3파일이 존재하지 않습니다.", true);
return;
}
var mediaPlayer = new MediaPlayer(); // 지역 변수로 선언
mediaPlayer.Volume = 1.0; // 볼륨 100%
// 미디어 파일 열리면 바로 재생
mediaPlayer.MediaOpened += (s, e) => mediaPlayer.Play();
// 오류 발생 시 로그 기록
mediaPlayer.MediaFailed += (s, e) =>
LogHelper.Instance.WriteLog("MediaPlayer 오류: " + e.ErrorException.Message, true);
// mp3 파일 열기
mediaPlayer.Open(new Uri(mp3FilePath));
}
catch (Exception ex)
{
LogHelper.Instance.WriteException(ex);
}
}
오류원인
이 문제는 Windows 11의 “미디어 기능”이 비활성화되어 있었기 때문이었다.
- Windows 11 Pro, Education, N/KN 등 일부 버전에서는
기본적으로 Windows Media Player 및 관련 미디어 재생 기능(코덱 포함)이 설치되어 있지 않거나, 꺼져있는 경우가 있다.
- WPF의 MediaPlayer는 내부적으로 Windows Media Foundation(혹은 Windows Media Player)을 활용해서
mp3, wma, wav 등 미디어 파일을 재생한다.
→ 따라서 미디어 재생 관련 Windows 구성 요소가 꺼져 있으면, 코드상으로 아무 오류도 발생하지 않거나,
또는 "Windows Media Player 10 이상이 필요합니다." 같은 메시지가 발생하면서 mp3 재생이 아예 안된다.
- 파일 자체에는 이상이 없고, 탐색기에서 직접 실행할 때는 다른 코덱이나 앱(예: Groove 음악, VLC 등)이 대신 재생해서 정상 동작하는 것처럼 보일 수 있다.
오류 해결방법
실행(Win+R)에서 optionalfeatures 입력 후
아래 이미지에 표시된
[Windows Media Player 레거시(앱)] 을 체크해주면 된다.

'c# > 오류' 카테고리의 다른 글
| [오류 / WPF / CefSharp] CefSharp.Subprocess 방화벽차단 이슈 (0) | 2024.03.04 |
|---|---|
| [오류 / WPF / CefSharp] 문자열 마무리 현상 (0) | 2024.02.22 |
| [오류 / WPF / xaml] c00000fd 오류 (0) | 2024.02.08 |