Framework & Library/Swing

[Swing] 사용자 정의 효과음 메서드

굠민 2024. 9. 18. 12:27
개요

 

포켓몬스터 게임 개발 중 버튼 클릭 시 효과음을 구현하고 싶어 찾아보게 된 메서드.

Java의 javax.sound.sampled 패키지에는 오디오 재생을 위한 기능은 내장되어 있지만, 한 줄로 오디오를 재생하는 메서드는 내장되어 있지 않기 때문에 사용자 정의 메서드 playSound를 직접 작성해야 사용하기 편하다고 한다.

 

📍정의

playSound : 특정 오디오 파일을 입력받아 재생하는 역할을 하는 사용자 정의 메서드.

사용자 정의 메서드로, 필요에 따라 이름은 변경 가능

 

📍역할

버튼 클릭, 알림, 경고음 등을 구현

 

📍필요 라이브러리

import javax.sound.*

 

📍playSound 메서드 구현 예시

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import java.io.File;

public class SoundEffect {
    public static void playSound(String soundFilePath) {
        try {
            // AudioInputStream: 오디오 데이터를 읽어오는 스트림
            AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(soundFilePath).getAbsoluteFile());
			
            // Clip : 오디오 데이터를 로드하고 재생하는 객체
            // AudioSystem: 오디오 시스템의 리소스를 얻는 데 사용되는 유틸리티 클래스
            Clip clip = AudioSystem.getClip();
            clip.open(audioInputStream);

            // 클립 재생
            clip.start(); 
        } catch (Exception e) {
            // 예외 발생 시 오류 메시지를 출력
            System.out.println("오류 발생 : " + e.getMessage());
        }
    }
}

 

📍메서드 사용 코드

// 버튼 클릭 시 효과음 재생
SoundEffect.playSound("src/sounds/click.wav");