2014-06-10 3 views
0

자바 프로그램을 작성 중입니다. 게임이 될 것입니다. 아직 세부 사항은 확실하지 않지만 소리가 들릴 것입니다. Java에서 기본 시스템 오디오 출력 장치를 찾는 방법이 있는지 궁금합니다. 사양을 기반으로 장치를 찾는 방법을 알고 있지만 사용자가 기본으로 설정 한 출력에 액세스 할 수있는 방법이 있는지 궁금 해서요. 실제로 사양이 무엇인지는 중요하지 않지만 원하는 것은 아닙니다. 피할 수 있다면 출력을 선택해야하며 어떤 장치가 작동하는지 또는 어떤 장치가 원하는지 알 수 없습니다. 기본 오디오에 액세스 할 수 있다면 전체 프로세스를 건너 뛸 수 있습니다. 스택 오버플로에서 이와 같은 질문을 한 다른 질문을 발견했지만 라인이 필요 없으며 컴퓨터에서 어떤 소리가 나왔는지 알 수있었습니다. 어쨌든 좋은 답변이 없었습니다. 이 주제와 관련된 다른 것을 찾지 못했습니다.기본 오디오 출력을 얻는 방법

EDT : 가능한 해결책을 찾은 다음 아래에 게시했습니다. 그러나 샘플 오디오는 대신 midi 오디오를 사용하고 가능한 경우 샘플 오디오를 사용하는 솔루션을 선호합니다.

+0

이 한 번 봐 [액세스 오디오 시스템 자원 (http://docs.oracle.com/javase/tutorial/sound/accessing.html) 및 관련 흔적 에스 – MadProgrammer

답변

0

답변을 찾았습니다. 나는 그것이 Accessing Audio System Resources 트레일에 실제로 가깝기 때문에 그것을 발견하지 못했습니다. 줄을 맺는 것과 관련된 모든 일이 끝나면 길을 터졌습니다. 여기에서 발췌 한 것입니다

"얻기 기본 장치

하나 이상의 시퀀서, 신디사이저, 입력 포트로 구성 될 수는 필요한 장치를 획득하는 것으로 시작 자바 사운드 API를 사용하는 일반적인 MIDI 응용 프로그램, 또는 출력 포트

기본 신디사이저 장치, 기본 시퀀서 장치, 기본 송신 장치 및 기본 수신 장치가 있으며, 두 장치는 일반적으로 MIDI 입력 및 출력 포트를 나타냅니다 시스템에서 사용 가능합니다 (여기에서 방향성에 대해 혼동하기 쉽습니다.) 소프트웨어와 관련하여 포트의 전송 또는 수신을 생각하십시오 물리적 포트에 연결된 외부 물리적 장치와 관련이 없습니다. MIDI 입력 포트는 외부 장치에서 Java Sound API Receiver로 데이터를 전송하며, 마찬가지로 MIDI 출력 포트는 소프트웨어 개체에서 데이터를 수신하고 데이터를 외부 장치로 릴레이합니다.)

간단한 응용 프로그램이 설치된 모든 장치를 탐색하는 대신 기본값입니다. 이러한 방법의

static Sequencer getSequencer() 
static Synthesizer getSynthesizer() 
static Receiver getReceiver() 
static Transmitter getTransmitter() 

처음 두 물리적 장치를 나타냅니다 또는 소프트웨어에 완전히 구현 중 시스템의 기본 시퀀싱 및 합성 자원을 구하십시오 MidiSystem에 클래스는 기본 자원을 검색하기위한 다음과 같은 방법을 포함한다. getReceiver 메소드는, 송신 된 MIDI 메세지를 받아 디폴트의 수신 디바이스에 중계하는 Receiver 오브젝트를 취득합니다. 마찬가지로, getTransmitter 방법은 기본 전송 장치를 대신하여 일부 수신기에 MIDI 메시지를 보낼 수있는 송신기 객체를 가져옵니다. "

을 그래서 기본적으로 기본 출력과

를 얻을 수

MidiSystem.getTransmitter(); 

을 사용

MidiSystem.getReceiver(); 
는 기본 입력을 얻을 수 있습니다.

관련 문제