티스토리 뷰

Windows System Sound Mute/UnMute

  • Windows System Sound를 Mute/UnMute 하는 기능이 필요했다. 

  • 어떻게 보면 간단한 기능이라고 생각이 되지만 생각보다 쉽게 찾을 수가 없었다. 더군다나 Java로 구현하려고 보니 JNA를 사용해야 하나 .. 고민을 하다가 아주 적절한 방법을 찾게 되었다.


해결 방법

  • Java의 ProcessBuilder를 이용하여 Command 명령으로 System Sound를 활성화/비활성화 하는 방법이다.

  • 예제코드
public void test() throws LineUnavailableException, IOException {
    ProcessBuilder processBuilder = new ProcessBuilder();

    //꼭 관리자 권한으로 실행해야 함
    processBuilder.command("cmd.exe", "/c", "net steop audiosrv");

    try {
      Process process = processBuilder.start();

      // blocked :(
      BufferedReader reader =
          new BufferedReader(new InputStreamReader(process.getInputStream(), "EUC-KR"));

      String line;
      while ((line = reader.readLine()) != null) {
        System.out.println(new String(line));
      }

      int exitCode = process.waitFor();
      System.out.println("\nExited with error code : " + exitCode);

    } catch (IOException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
  • 중요한 건 꼭 관리자 권한으로 실행해야 한다. (IDE로 실행한다면 IDE를 관리자 권한으로 실행)
  • 만약 다시 Sound를 활성화 (UnMute) 하고 싶다면 processBuilder.command의 명령어를 아래와 같이 바꾸자.
processBuilder.command("cmd.exe", "/c", "net start audiosrv");

끝으로

이 글이 도움이 되었다면, Google 광고 한번씩 클릭 부탁 드립니다. 🙏🙏🙏

광고 클릭은 많은 힘이 됩니다!

반응형
댓글