c#/오류

[오류 / WPF / MediaPlayer] WPF MediaPlayer에서 "Windows Media Player 버전 10 이상이 필요합니다." 오류 해결법

루다대디 2025. 7. 29. 17:12

오류내용

오류원인

해결방법


오류내용

"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 레거시(앱)] 을 체크해주면 된다.