Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

javax.microedition.media
クラス Manager

java.lang.Object
  上位を拡張 javax.microedition.media.Manager

public final class Manager
extends Object

Manager は、マルチメディア処理のための Player といった、システム依存のリソースへのアクセス・ポイントです。

Player はデータの Content-Type で特定したメディアを制御およびレンダリングするために使用するオブジェクトです。

Manager は実装定義のメカニズムへのアクセスを提供し、Player を構築します。

また、利便性のために Manager は単音生成を行う簡易型のメソッドを提供します。

単純トーン生成

playTone は、トーン(音)を生成させる機能を定義します。 この機能は、音階と持続時間を与えることで指定されたトーンを生成します。

Player の作成

Manager はメディアを再生するために Player を作成する2つのメソッドを提供します:

メディアの再生を制御するために使用する Player を返します。

Content-Type

Content-Type はメディア・データの型を特定します。 それらは、登録済み MIME タイプ(http://www.iana.org/assignments/media-types/)によって定義されています; 加えて、一般に、MIME 書式(RFC 2045RFC 2046)に従ういくつかのユーザー定義型があります。

ここにいくつかの一般的な Content-Type を例示します:

メディア・ロケータ

メディア・ロケータは URI 書式で定義された書式を用います:

    <スキーマ>:<スキーマによる定義部分>

ロケータ文字列の"スキーマ"部分がデータを受け取るために使用するプロトコルの名称を意味します。

関連項目:
Player

フィールドの概要
static String TONE_DEVICE_LOCATOR
          トーン・シーケンスを再生するためのトーン Player を作成するためのロケータです。
 
メソッドの概要
static Player createPlayer(InputStream stream, String type)
          InputStream によるメディアを再生する Player を作成します。
static Player createPlayer(String locator)
          指定のロケータから Player を作成します。
static String[] getSupportedContentTypes(String protocol)
          指定したプロトコルでサポートされる Content-Type のリストを取得します。
static String[] getSupportedProtocols(String content_type)
          指定した Content-Type でサポートするプロトコルのリストを取得します。
static void playTone(int note, int duration, int volume)
          音階と持続時間を指定してトーンを再生します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

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 は全くシーケンスを用いません。 この PlayergetDuration0 を返します。

このロケータから作成した Player の Content-Type は audio/x-tone-seq です。

このロケータのための Player は、全ての実装でサポートされるとは限りません。

TONE_DEVICE_LOCATOR には値として"device://tone"が割り当てられます。

関連項目:
定数フィールド値
メソッドの詳細

getSupportedContentTypes

public static String[] getSupportedContentTypes(String protocol)

指定したプロトコルでサポートされる Content-Type のリストを取得します。

返す Content-Type の書式は Content-Type を参照してください。 プロトコルの書式はプロトコル名を参照してください。

例えば指定したプロトコルが"http"であれば、HTTP プロトコルでの再生をサポートする Content-Type を返します。

protocolnull を渡すと、この実装がサポートする全ての Content-Type を返します。 返す配列は空になっていてはなりません。

指定された protocol が無効、あるいはサポートしないプロトコルであれば、空の配列を返します。

パラメータ:
protocol - サポートする Content-Type を取得するためのプロトコルを渡します。
戻り値:
指定したプロトコルでサポートされる Content-Type のリストを返します。

getSupportedProtocols

public static String[] getSupportedProtocols(String content_type)

指定した Content-Type でサポートするプロトコルのリストを取得します。 作成する Player に対してどのようなロケータを使用できるかを特定する文字列としてプロトコルを返します。

返すプロトコルの書式についてはプロトコル名を参照してください。 content_type のための書式については Content-Type を参照してください。

例えば content_type に"audio/x-wav"を指定すると、audio/x-wav を使用しての再生をサポートするプロトコルを返します。

content_typenull を渡すと、この実装がサポートする全てのプロトコルを返します。 返す配列は空になっていてはなりません。

指定した content_type が無効、あるいはサポートしていない Content-Type であれば、空の配列を返します。

パラメータ:
content_type - サポートするプロトコルを取得するための Content-Type を渡します。
戻り値:
指定した Content-Type をサポートするプロトコルのリストを返します。

createPlayer

public static Player createPlayer(String locator)
                           throws IOException,
                                  MediaException

指定のロケータから Player を作成します。

パラメータ:
locator - メディアの内容について記述する URI 書式によるロケータ文字列を渡します。
戻り値:
新しい Player を返します。
例外:
IllegalArgumentException - パラメータ locatornull ならば throw します。
MediaException - 指定されたロケータのための Player を作成できないならば throw します。
IOException - ロケータによって示されるソースへの接続で問題が発生したなら throw します。
SecurityException - 呼び出し元が Player を作成するセキュリティ権限を持っていなければ throw します。

createPlayer

public static Player createPlayer(InputStream stream,
                                  String type)
                           throws IOException,
                                  MediaException

InputStream によるメディアを再生する Player を作成します。

type パラメータは入力するメディアの Content-Type を指定します。 null を指定すると、Manager はタイプの判定を試みます。 しかし、メディア・タイプによってはメディア・タイプは自明ではないため、場合によっては決定することができないことがあります。 Manager はそれを示すために MediaException を throw します。

パラメータ:
stream - 入力するメディアを提供する InputStream を渡します。
type - メディアの Content-Type を渡します。
戻り値:
新しい Player を返します。
例外:
IllegalArgumentException - パラメータ streamnull ならば throw します。
MediaException - 指定された stream および type のための Player を作成できないならば throw します。
IOException - InputStream からのデータの読み出しにおいて問題が発生したなら throw します。
SecurityException - 呼び出し元が Player を作成するセキュリティ権限を持っていなければ throw します。

playTone

public static void playTone(int note,
                            int duration,
                            int volume)
                     throws MediaException

音階と持続時間を指定してトーンを再生します。 音階は 0 から 127 の範囲内で指定します。 以下の公式で音階に対応する周波数を計算することができます:

 半音固定値 = 17.31234049066755 = 1/(ln(2^(1/12)))
 音階 = ln( 周波数/8.176)* 半音固定値
 オクターブ4ラ = MIDI 音階番号 69 (0x45) = 440 ヘルツ

この呼び出しは、ブロッキングしない呼び出しです。 このメソッドは、トーン生成のためのハードウェア・サポートを搭載していないデバイスではプロセッサ・リソースをかなり消費するかもしれないことに注意が必要です。

パラメータ:
note - 上記の公式によって定義されるトーンの音階を渡します。
duration - トーンの持続時間(発音時間)をミリ秒単位で渡します。 持続時間は正数でなければなりません。
volume - 音量を 0 から 100 の間で渡します。 100 はこのハードウェアにおける最大の音量を示します。 音量に 0 未満の値を指定すると音量には 0 を設定します。 音量に 100 以上の値を指定すると音量には 100 を設定します。
例外:
IllegalArgumentException - 指定した note または duration が範囲外であれば throw します。
MediaException - デバイスに関連する問題のためにトーンの再生ができない場合に throw します。

Unofficial
"CLDC 1.1
+ MIDP 2.0"
API Reference.
(日本語版)

公式仕様書原文の著作権表記等(※):

Mobile Information Device Profile Specification ("Specification")
Version: 2.0
Status: FCS
Release: November 5, 2002

Copyright 2002 Sun Microsystems, Inc. and Motorola, Inc.
All rights reserved.
※ただしこの API リファレンスは英語仕様を一語一句正確に翻訳したものではなく、一度私が英語の仕様原文を読んだ上で元の意味と構造をなるべく保つように書き起こしたものです。このため一部は完全に異なる説明となっています。また CLDC 1.1 部分は同仕様の範囲外であるため、まったく参考とはしていません。

※仕様書のライセンス上、問題は無いと考えておりますが、万が一問題があるとお考えの関係者の方がいらっしゃいましたらメールにて連絡をいただけると幸いに存じます(第一言語に日本語、第二言語に英語を希望しますが、返信は基本的に日本語で行います)。

この API リファレンスは仕様書の日本語版という位置づけでは作成していませんし、仕様書ほど厳格でもありません。MUST、SHOULD、MAY などの仕様の条件を強調する文を維持していません(反映すらしていない個所もあります)。仮想マシンおよび MIDP の実装のために使用することは避けてください。そのような用途には必ず公式仕様書原文そのものを用いるべきです。
この API リファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Motorola, Inc、Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Motorola, Inc、Java Community Process 等とは一切関係ありません。したがってこの API リファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本 API リファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカル・ファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009,2011 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.0 + MIDP 1.0" API Reference はこちらです。