Java Tip 24 : 응용 프로그램에서 오디오를 재생하는 방법

Java 응용 프로그램에서 오디오 파일을 재생하는 것은 현재 Java 릴리스에서 공식적으로 지원되지 않습니다. 그러나 두려워하지 마십시오. 방법이 있습니다! 이 팁은 Java 애플릿에서 오디오 클립을 재생하는 것과 관련된 기본 단계에 대한 설명으로 시작하여 Java 애플리케이션 지원으로 이동하는 방법을 보여줍니다.

애플릿에서 오디오 클립을 재생하는 것은 매우 간단하며 다음 단계를 포함합니다.

  • AudioClip 개체 만들기
  • .au 사운드 파일을 AudioClip에로드
  • 사운드를 한 번 재생하거나 계속 반복
  • 재생 중지

이 단계의 코드는 다음과 같습니다.

import java.applet. *; AudioClip ac = getAudioClip (getCodeBase (), soundFile); ac.play (); // 한 번 재생 ac.stop (); // 재생 중지 ac.loop (); // 계속 플레이

자바 애플리케이션에서 오디오 클립을 재생하기 위해 이와 동일한 코드를 사용하는 것은 논리적으로 보입니다. 불행히도 그렇게하면 컴파일러에서 오류가 발생합니다. 왜? 때문에 AudioClip객체와 getAudioClip()방법은의 일부 java.applet의의 와 응용 프로그램의 일부가 아닌 - 패키지. 좋은 소식은 우리가 잠수하여 스스로 일을 할 수 있다는 것입니다.

이 문제를 해결하는 비결은 Sun이 JDK에서 제공하는 문서화되지 않은 기능 을 사용하는 것 입니다. Sun JDK (다양한 zipfile 유틸리티 사용)에서 classes.zip 파일을 들여다 보면 java.applet 과 같은 표준 Java 패키지 뿐만 아니라 sun.audio도 있습니다. (이들은 sun / audio 디렉토리에 있습니다.)

sun.audio 패키지는 우리가 오디오 클립을 재생 할 수 있도록 필요한 모든 것을 포함하고 있습니다! 코드는 다음과 같습니다.

import sun.audio. *; //sun.audio 패키지 가져 오기 import java.io. *; // ** 애플리케이션 코드에 적절하게 추가합니다. // 오디오 파일에 대한 입력 스트림을 엽니 다. InputStream in = new FileInputStream (Filename); // 입력 스트림에서 AudioStream 객체를 만듭니다. AudioStream as = new AudioStream (in); // AudioPlayer 클래스의 정적 클래스 멤버 "player"를 사용하여 // 클립을 재생합니다. AudioPlayer.player.start (as); // 마찬가지로 오디오를 중지합니다. AudioPlayer.player.stop (as);

URL을 오디오 스트림 소스로 사용하려면 입력 스트림 및 오디오 스트림 설정을 다음으로 대체하십시오.

AudioStream as = new AudioStream (url.openStream ()); 

오디오 스트림을 계속 재생하면 약간 더 복잡해집니다.

// 앞에서 설명한대로 오디오 스트림을 만듭니다. // AudioData 소스를 만듭니다. AudioData 데이터 = as.getData (); // ContinuousAudioDataStream을 만듭니다. ContinuousAudioDataStream cas = 새로운 ContinuousAudioDataStream (데이터); // 오디오를 재생합니다. AudioPlayer.player.play (cas); // 마찬가지로 오디오를 중지합니다. AudioPlayer.player.stop (cas);

그리고 거기에 있습니다. 이 기술은 문서화되지 않은 기능을 사용합니다. 현재 Sun JDK 이외의 다른 제품과도 작동 할 것이라는 보장은 없습니다.

Chong Ser Wah는 싱가포르 Java Competency Center의 컨설턴트입니다. 센터의 자바 컵 대회를 확인하세요.

이 이야기, "Java Tip 24 : 응용 프로그램에서 오디오를 재생하는 방법"은 원래 JavaWorld에서 게시했습니다.