MID 프로필

javax.microedition.media
Class Manager

java.lang.Object
  |
  +--javax.microedition.media.Manager

public final class Manager
extends Object

Manager는 멀티미디어를 처리하는 Player와 같은 시스템 종속 자원을 얻기 위한 액세스 포인트입니다.

Player는 데이터의 내용 유형에 적합한 미디어를 제어하고 렌더링하는 데 사용하는 객체입니다.

Manager에서는 Player를 구성하기 위한 구현별 기법에 액세스할 수 있습니다.

편의상 Manager는 단순 톤을 생성하기 위한 간소화된 메소드도 제공합니다.

단순 톤 생성

playTone 기능은 톤을 생성하기 위해 정의되었습니다. 음표와 재생 시간이 주어지면 이 기능은 지정된 톤을 생성합니다.

Player 만들기

Manager는 미디어를 재생하는 Player를 만들기 위한 두 가지 메소드를 제공합니다. 반환된 Player는 미디어의 표시를 제어하는 데 사용될 수 있습니다.

내용 유형

내용 유형은 미디어 데이터의 유형을 식별합니다. 내용 유형은 등록된 MIME 유형( http://www.iana.org/assignments/media-types/)과 일반적으로 MIME 구문(RFC 2045, RFC 2046)을 따르는 몇몇 사용자 정의 유형으로 정의됩니다.

예를 들어, 일반적인 내용 유형은 다음과 같습니다.

  1. Wave 오디오 파일: audio/x-wav
  2. AU 오디오 파일: audio/basic
  3. MP3 오디오 파일: audio/mpeg
  4. MIDI 파일: audio/midi
  5. 톤 시퀀스: audio/x-tone-seq

미디어 로케이터

미디어 로케이터는 다음과 같은 형식의 URI 구문에 지정되어 있습니다.

    <scheme>:<scheme-specific-part>

로케이터 문자열의 "scheme" 부분은 데이터 전달에 사용될 프로토콜의 이름을 식별합니다.

See Also:
Player

Field Summary
static String TONE_DEVICE_LOCATOR
          톤 시퀀스를 재생하기 위한 톤 Player를 만드는 로케이터.
 
Method Summary
static Player createPlayer(InputStream stream, String type)
          InputStream에서 미디어를 재생하기 위해 Player를 만듭니다.
static Player createPlayer(String locator)
          입력 로케이터에서 Player를 만듭니다.
static String[] getSupportedContentTypes(String protocol)
          주어진 프로토콜에 대해 지원되는 내용 유형 목록을 반환합니다.
static String[] getSupportedProtocols(String content_type)
          제공된 내용 유형을 지원하는 프로토콜의 목록을 반환합니다.
static void playTone(int note, int duration, int volume)
          음표와 재생 시간에 의해 지정된 대로 톤을 재생합니다.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TONE_DEVICE_LOCATOR

public static final String TONE_DEVICE_LOCATOR
톤 시퀀스를 재생하기 위한 톤 Player를 만드는 로케이터. 예를 들면 다음과 같습니다.
 try {
     Player p = Manager.createPlayer(Manager.TONE_DEVICE_LOCATOR);
     p.realize();
     ToneControl tc = (ToneControl)p.getControl("ToneControl");
     tc.setSequence(mySequence);
     p.start();
 } catch (IOException ioe) {
 } catch (MediaException me) {}
톤 시퀀스가 ToneControl을 통해 톤 Player에 설정되지 않은 경우 Player는 어떤 시퀀스도 실행하지 않습니다. getDuration은 이러한 Player에 대해 0을 반환합니다.

이 로케이터에서 만든 Player의 내용 유형은 audio/x-tone-seq입니다.

모든 구현에 대해 이 로케이터의 Player가 지원되는 것은 아닙니다.

"device://tone" 값이 TONE_DEVICE_LOCATOR에 지정됩니다.

See Also:
Constant Field Values
Method Detail

getSupportedContentTypes

public static String[] getSupportedContentTypes(String protocol)
주어진 프로토콜에 대해 지원되는 내용 유형 목록을 반환합니다.

반환된 내용 유형의 구문은 내용 유형을 참조하십시오. 사용된 프로토콜의 구문은 프로토콜 이름을 참조하십시오.

예를 들어, 주어진 protocol"http"이면 http 프로토콜로 재생할 수 있는 지원되는 내용 유형이 반환됩니다.

protocolnull이 전달된 경우에는 이 구현을 지원하는 모든 내용 유형이 반환됩니다. 반환된 배열은 비어 있으면 안 됩니다.

주어진 protocol이 유효하지 않거나 지원되지 않는 프로토콜이면 빈 배열이 반환됩니다.

Parameters:
protocol - 지원되는 내용 유형의 입력 프로토콜
Returns:
주어진 프로토콜을 지원하는 내용 유형 목록

getSupportedProtocols

public static String[] getSupportedProtocols(String content_type)
제공된 내용 유형을 지원하는 프로토콜의 목록을 반환합니다. 프로토콜은 Player를 만드는 데 사용할 수 있는 로케이터를 식별하는 문자열로 반환됩니다.

반환된 프로토콜의 구문은 프로토콜 이름을 참조하십시오. 사용된 내용 유형의 구문은 내용 유형을 참조하십시오.

예를 들어, 주어진 content_type"audio/x-wav"이면 audio/x-wav를 재생하는 데 사용할 수 있는 지원되는 프로토콜이 반환됩니다.

content_type으로 null이 전달되면 이 구현을 지원하는 모든 프로토콜이 반환됩니다. 반환된 배열은 비어 있으면 안 됩니다.

주어진 content_type이 유효하지 않거나 지원되지 않는 내용 유형이면 빈 배열이 반환됩니다.

Parameters:
content_type - 지원되는 프로토콜의 내용 유형
Returns:
주어진 내용 유형을 지원하는 프로토콜 목록

createPlayer

public static Player createPlayer(String locator)
                           throws IOException,
                                  MediaException
입력 로케이터에서 Player를 만듭니다.

Parameters:
locator - 미디어 내용을 설명하는 URI 구문의 로케이터 문자열
Returns:
Player
Throws:
IllegalArgumentException - locatornull인 경우 발생합니다.
MediaException - 주어진 로케이터의 Player를 만들 수 없는 경우 발생합니다.
IOException - locator로 지정한 소스에 연결하는 데 문제가 있는 경우 발생합니다.
SecurityException - 호출자에게 Player를 만들 보안 권한이 없는 경우 발생합니다.

createPlayer

public static Player createPlayer(InputStream stream,
                                  String type)
                           throws IOException,
                                  MediaException
InputStream에서 미디어를 재생하기 위해 Player를 만듭니다.

type 인자는 입력 미디어의 내용 유형을 지정합니다. null이 주어진 경우 Manager는 유형을 결정하려고 시도합니다. 그러나 일부 미디어 유형에 대해서는 미디어 유형을 결정하기가 쉽지 않으므로 어떤 경우에는 불가능할 수도 있습니다. ManagerMediaException을 발생하여 이런 상황을 나타냅니다.

Parameters:
stream - 입력 미디어를 전달하는 InputStream
type - 미디어의 ContentType
Returns:
Player
Throws:
IllegalArgumentException - streamnull인 경우 발생합니다.
MediaException - 주어진 스트림과 유형에 대해 Player를 만들 수 없는 경우 발생합니다.
IOException - InputStream에서 데이터를 읽는 데 문제가 있는 경우 발생합니다.
SecurityException - 호출자에게 Player를 만들 보안 권한이 없는 경우 발생합니다.

playTone

public static void playTone(int note,
                            int duration,
                            int volume)
                     throws MediaException
음표와 재생 시간에 의해 지정된 대로 톤을 재생합니다. 음표는 0 ~ 127 사이에서 제공됩니다. 음표의 주파수는 다음 공식으로 계산할 수 있습니다.
     SEMITONE_CONST = 17.31234049066755 = 1/(ln(2^(1/12)))
     note = ln(freq/8.176)*SEMITONE_CONST
     음표 A = MIDI note 69 (0x45) = 440 Hz입니다.
이 호출은 비블록화 호출입니다. 이 메소드는 특히 톤 생성을 위한 하드웨어를 지원하지 않는 장치에서 CPU 자원을 이용할 수 있습니다.

Parameters:
note - 위의 공식으로 지정된 대로 음표의 톤을 정의합니다.
duration - 밀리초 단위의 톤 재생 시간. 재생 시간은 양수이어야 합니다.
volume - 오디오 볼륨은 0 ~ 100 사이입니다. 100은 현재 하드웨어 수준에서 최대 볼륨을 표시합니다. 볼륨을 0 미만의 값으로 설정하면 볼륨은 0으로 설정됩니다. 볼륨을 100보다 큰 값으로 설정하면 볼륨은 100으로 설정됩니다.
Throws:
IllegalArgumentException - 음표나 재생 시간이 범위를 벗어난 경우 발생합니다.
MediaException - 장치 관련 문제로 인해 톤을 재생할 수 없는 경우 발생합니다.

MID 프로필

의견이나 제안 사항 보내기 MID 프로필 사양 버전 2.0
Java는 미국 및 다른 국가에서 Sun Microsystems, Inc.의 상표 또는 등록 상표입니다. Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. 모든 권리는 저작권자의 소유입니다.