|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
public interface MidiDevice
MidiDevice
는, 모든 MIDI 디바이스를 위한 기저 인터페이스입니다. 자주(잘) 사용되는 디바이스에는, 신디사이저, 시퀀서, MIDI 입력 포트, MIDI 출력 포트등이 있습니다.
MidiDevice
는, MIDI 이벤트의 트랜스미터, 리시버, 또는 그 양쪽 모두가 될 수가 있으므로,Transmitter
인스턴스나 Receiver
인스턴스, 또는 그 양쪽 모두를 제공할 수 있습니다. 일반적으로, MIDI IN 포트는 트랜스미터를 제공해, MIDI OUT 포트 및 신디사이저는 리시버를 제공합니다. 일반적으로, 시퀀서는, 재생용으로 트랜스미터를 제공해, 녹음용으로 리시버를 제공합니다.
MidiDevice
의 개폐는, 명시적으로 실시하는 일도, 암묵적으로 실시할 수도 있습니다. 명시적으로 열리려면 MidiDevice
인스턴스의 open()
를 호출해, 명시적으로 닫으려면 close()
를 호출합니다. 어플리케이션으로부터 MidiDevice
를 명시적으로 열렸을 경우는, 그것을 명시적으로 닫아 system resource를 해제하지 않으면 어플리케이션을 정상적으로 종료할 수 없습니다. 암묵적으로 열려면 ,MidiSystem.getReceiver
및 MidiSystem.getTransmitter
를 호출합니다. MidiSystem.getReceiver
및 MidiSystem.getTransmitter
에 의해 사용되는 MidiDevice
는 구현에 의존하고 있습니다만,javax.sound.midi.Receiver
프로퍼티이나 javax.sound.midi.Transmitter
프로퍼티을 사용했을 경우는 예외입니다 (디폴트 프로바이더를 선택하는 프로퍼티에 관한 MidiSystem
의 설명을 참조). 암묵적으로 연 MidiDevice
는, 그 디바이스를 연 Receiver
또는 Transmitter
를 닫으면(자), 암묵적으로 닫혀집니다. 어플리케이션이 복수의 Receiver
또는 Transmitter
를 취득해 디바이스를 암묵적으로 열려 있는 경우는, 모든 Receiver
또는 Transmitter
가 닫혀진 시점에서, 디바이스가 암묵적으로 닫혀집니다. 한편, 디바이스 인스턴스의 getReceiver
또는 getTransmitter
를 직접 호출해도, 디바이스가 암묵적으로 열 것은 없습니다. 또, 이러한 Transmitter
나 Receiver
를 닫아도, 디바이스가 암묵적으로 닫을 것은 없습니다. 이 방법으로 취득한 Receiver
나 Transmitter
로 디바이스를 사용할 때는, 디바이스를 명시적으로 개폐할 필요가 있습니다.
MidiDevice
의 동일한 인스턴스에 대해서 명시적인 개폐와 암묵적인 개폐가 혼재해 행해졌을 경우에는, 다음의 규칙이 적용됩니다.
MidiDevice device = ...; if ( ! (device instanceof Sequencer) && ! (device instanceof Synthesizer)) { // we're now sure that device represents a MIDI port // ... }
MidiDevice
에는, 제조자 정보등을 제공하는
객체가 포함되어 있습니다.
MidiDevice.Info
Synthesizer
,
Sequencer
,
Receiver
,
Transmitter
상자의 클래스의 개요 | |
---|---|
static class |
MidiDevice.Info
MidiDevice.Info 객체는, 디바이스의 이름, 제작 회사명, 설명 텍스트 등, 에 관련하는 다양한 데이터를 포함하고 있습니다. |
메소드의 개요 | |
---|---|
void |
close ()
디바이스를 닫아 사용하고 있던 system resource를 디바이스가 해제하는 것을 나타냅니다. |
MidiDevice.Info |
getDeviceInfo ()
Java 클래스와 이름, 벤더 및 설명등의 Strings 를 포함한, 디바이스에 관한 정보를 가져옵니다. |
int |
getMaxReceivers ()
이 MIDI 디바이스로 MIDI 데이터를 수신하는데 사용 가능한 MIDI IN 접속의 최대수를 가져옵니다. |
int |
getMaxTransmitters ()
이 MIDI 디바이스로 MIDI 데이터를 전송 하는데 사용 가능한 MIDI OUT 접속의 최대수를 가져옵니다. |
long |
getMicrosecondPosition ()
디바이스의 현재의 시각표시를 마이크로 세컨드 단위로 가져옵니다. |
Receiver |
getReceiver ()
MIDI 디바이스가 MIDI 데이터를 수신하는데 경유하는 MIDI IN 리시버를 가져옵니다. |
List <Receiver > |
getReceivers ()
이 MidiDevice 에 접속되고 있는 리시버 가운데, 현재 액티브해 열려 있는 것을 모두 돌려줍니다. |
Transmitter |
getTransmitter ()
MIDI 디바이스가 MIDI 데이터를 전송 하는 MIDI OUT 접속을 가져옵니다. |
List <Transmitter > |
getTransmitters ()
이 MidiDevice 에 접속되고 있는 트랜스미터 가운데, 현재 액티브해 닫혀지지 않은 것을 모두 돌려줍니다. |
boolean |
isOpen ()
디바이스가 열려 있을지 어떨지를 판단합니다. |
void |
open ()
디바이스를 열어, 필요한 system resource를 디바이스가 획득해 조작 가능하게 되어 있는 것을 나타냅니다. |
메소드의 상세 |
---|
MidiDevice.Info getDeviceInfo()
Strings
를 포함한, 디바이스에 관한 정보를 가져옵니다.
void open() throws MidiUnavailableException
이 메소드를 호출해 디바이스를 명시적으로 열린 어플리케이션에서는,close()
를 호출해 그 디바이스를 닫을 필요가 있습니다. 이 조작은, system resource를 해제해, 어플리케이션이 정상적으로 종료하기 위해서 필요합니다.
디바이스에 따라서는, 한 번 닫으면(자) 다시 열지 못하는 것에 주의해 주세요. 이러한 디바이스를 재차 열려고 하면(자), 항상 MidiUnavailableException 가 됩니다.
MidiUnavailableException
- 자원의 제약을 위해서(때문에) 디바이스를 열지 않는다
경우에 throw 된다
SecurityException
- 시큐리티의 제약을 위해서(때문에) 디바이스를 열지 않는다
경우에 throw 되는close()
,
isOpen()
void close()
이 디바이스로부터 연 Receiver
인스턴스와 Transmitter
인스턴스는 모두 닫혀집니다. MidiSystem
를 개입시켜 취득한 인스턴스도 이와 같이 닫혀집니다.
open()
,
isOpen()
boolean isOpen()
true
, 그렇지 않은 경우는
false
open()
,
close()
long getMicrosecondPosition()
int getMaxReceivers()
int getMaxTransmitters()
Receiver getReceiver() throws MidiUnavailableException
이 메소드로 Receiver
를 취득해도, 디바이스는 열지 않습니다. 디바이스를 사용하려면 ,open()
를 호출해 명시적으로 열릴 필요가 있습니다. 또,Receiver
를 닫아도, 디바이스는 닫혀지지 않기 때문에,close()
를 호출해 디바이스를 명시적으로 닫을 필요가 있습니다.
MidiUnavailableException
- 자원의 제약을 위해서(때문에) 리시버를 사용할 수 없다
경우에 throw 되는Receiver.close()
List <Receiver > getReceivers()
Transmitter getTransmitter() throws MidiUnavailableException
이 메소드로 Transmitter
를 취득해도, 디바이스는 열지 않습니다. 디바이스를 사용하려면 ,open()
를 호출해 명시적으로 열릴 필요가 있습니다. 또,Transmitter
를 닫아도, 디바이스는 닫혀지지 않기 때문에,close()
를 호출해 디바이스를 명시적으로 닫을 필요가 있습니다.
MidiUnavailableException
- 자원의 제약을 위해서(때문에) 트랜스미터를 사용할 수 없다
경우에 throw 되는Transmitter.close()
List <Transmitter > getTransmitters()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.