com.docomostar.media
クラス MediaManager

Object
  上位を拡張 com.docomostar.media.MediaManager

public final class MediaManager
extends Object

メディアリソースデータの管理オブジェクトを定義します。
リソースの取得と利用時の振舞は以下のようになります。


MediaResource.use() メソッド、 MediaResource.unuse() メソッド呼び出しによる、 メモリ確保・解放に関する振る舞いをモデル化するために、 以下の 2 つの領域を定義します。

オリジナルデータ領域:
内部表現形式に変換される前のデータイメージを保存しておく領域です。 例えば、 GIF 画像の場合は、 GIF フォーマットのデータそのものを保存しておく領域がこれにあたります。
内部データ領域:
メディアリソースに対して use メソッドを呼び出すと、 内部表現形式への変換を行いますが、 その変換後のデータの一部 ( または全て ) を保存しておく領域です。

use() 、 unuse() 時のメモリ確保・解放に関する振る舞いは、 getImage() 、 getSound() 、 getAvatarData()、getMovie() メソッドの引数に、何を指定するかによって、下記のように異なります。 ただし、データによっては内部表現形式に変換する必要のないものがあります。 そのようなデータについては「オリジナルデータ領域」のみが存在するものとし、 下記の説明の「オリジナルデータ領域」に関する説明のみ有効とします。

URL 指定により取得したメディアリソース:
1回目の use 時:
  • 新しく「オリジナルデータ領域」を確保する。 URLで指定されたロケーションよりデータを読み込み、 そのデータを「オリジナルデータ領域」に保存する。
  • 新しく「内部データ領域」を確保する。 「オリジナルデータ領域」内のデータを内部形式に変換して 「内部データ領域」に保持する。
unuse 時:
「内部データ領域」のみを解放する。
2回目以降の use 時:
新しく「内部データ領域」を確保する。 URLで指定されたロケーションからのデータ読み込みは行わず、 「オリジナルデータ領域」 内のデータを内部形式に変換して「内部データ領域」に保持する。
バイト配列指定により取得したメディアリソース:
1回目の use 時:
  • 新しく「オリジナルデータ領域」を確保する。 参照しているバイト配列の内容を 「オリジナルデータ領域」へコピーし、保存する。
  • 新しく「内部データ領域」を確保する。 「オリジナルデータ領域」内のデータを内部形式に変換して 「内部データ領域」に保持する
unuse 時:
「内部データ領域」のみを解放する。
2 回目以降の use 時:
新しく「内部データ領域」を確保する。 「オリジナルデータ領域」 内のデータを内部形式に変換して「内部データ領域」に保持する。
ストリーム指定により取得したメディアリソース:
1 回目の use 時:
  • 新しく「オリジナルデータ領域」を確保する。 データ1つ分をストリームより読み込み、 そのデータを「オリジナルデータ領域」に保存する。
  • 新しく「内部データ領域」を確保する。 「オリジナルデータ領域」内のデータを内部形式に 変換して「内部データ領域」に保持する。
unuse 時:
「内部データ領域」を解放する。
2 回目以降の use 時:
新しく「内部データ領域」を確保する。 「オリジナルデータ領域」内のデータを内部形式に変換して 「内部データ領域」に保持する。

導入されたバージョン:
Star-1.0
関連項目:
MediaResource, MediaImage, MediaSound, MediaPresenter, AudioPresenter, VisualPresenter, NativeMoviePlayer, MediaMovie

メソッドの概要
static MediaImage createMediaImage(int width, int height)
           画像の幅・高さを指定して、 空のメディアイメージを生成します。
static MediaImage createMediaImage(int width, int height, boolean reusable)
           画像の幅・高さ、PNG 画像に対する内部データ領域の再利用可否を指定して、 空のメディアイメージを生成します。
static MediaSound createMediaSound(int bytes)
           サウンドのデータサイズ [bytes] を指定して、 空のメディアサウンドを生成します。
static AvatarData getAvatarData(byte[] data) [iアプリオプションAPI]
           バイト配列を指定してアバターデータオブジェクトを取り出します。
static AvatarData getAvatarData(java.io.InputStream in) [iアプリオプションAPI]
           ストリームを指定してアバターデータオブジェクトを取り出します。
static AvatarData getAvatarData(String location) [iアプリオプションAPI]
           場所を指定してアバターデータオブジェクトを取り出します。
static MediaImage getImage(byte[] data)
          バイト配列を指定してメディアイメージオブジェクトを取り出します。
static MediaImage getImage(java.io.InputStream in)
          ストリームを指定してメディアイメージオブジェクトを取り出します。
static MediaImage getImage(String location)
          場所を指定してメディアイメージオブジェクトを取り出します。
static MediaMovie getMovie(byte[] data)
           バイト配列を指定してメディアムービーオブジェクトを取り出します。
static MediaMovie getMovie(java.io.InputStream in)
           ストリームを指定してメディアムービーオブジェクトを取り出します。
static MediaMovie getMovie(String location)
           場所を指定してメディアムービーオブジェクトを取り出します。
static MediaSound getSound(byte[] data)
           バイト配列を指定してメディアサウンドオブジェクトを取り出します。
static MediaSound getSound(java.io.InputStream in)
           ストリームを指定してメディアサウンドオブジェクトを取り出します。
static MediaSound getSound(String location)
           場所を指定してメディアサウンドオブジェクトを取り出します。
static void use(MediaImage[] images, boolean useOnce)
           指定されたイメージを、 まとめて利用可能にします。
static void use(MediaSound[] sounds, boolean useOnce)
           指定されたサウンドを、 まとめて利用可能にします。
 
クラス Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

メソッドの詳細

getImage

public static final MediaImage getImage(String location)
場所を指定してメディアイメージオブジェクトを取り出します。 location 指定のフォーマット形式が正しくない場合 、引数指定誤りになります。

パラメータ:
location - 場所を指定します。
戻り値:
メディアイメージオブジェクトを返します。
例外:
NullPointerException -
引数 location が null の場合に発生します。
IllegalArgumentException -
引数 location に指定された文字列が "comm:" 、 "obex:" 、 "socket:" 、 "datagram:" で開始する場合に発生します。
IllegalArgumentException -
引数 location に不正な場所が指定された場合に発生します。
SecurityException -
セキュリティ上の制約に触れた場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getSound

public static final MediaSound getSound(String location)

場所を指定してメディアサウンドオブジェクトを取り出します。 location 指定のフォーマット形式が正しくない場合、 引数指定誤りになります。

パラメータ:
location - 場所を指定します。
戻り値:
メディアサウンドオブジェクトを返します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 location が null の場合に発生します。
IllegalArgumentException -
引数 location に指定された文字列が "comm:" 、 "obex:" 、 "socket:" 、 "datagram:" で開始する場合に発生します。
IllegalArgumentException -
引数 location に不正な場所が指定された場合に発生します。
SecurityException -
セキュリティ上の制約に触れた場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getAvatarData

public static final AvatarData getAvatarData(String location) [iアプリオプションAPI]

場所を指定してアバターデータオブジェクトを取り出します。 location 指定のフォーマット形式が正しくない場合 、引数指定誤りになります。

端末によっては、このメソッドをサポートしていない場合があります。 その場合には、例外 UnsupportedOperationException が発生します。

パラメータ:
location - 場所を指定します。
戻り値:
アバターデータオブジェクトを返します。
例外:
UnsupportedOperationException -
端末がこのメソッドをサポートしていない場合に発生します。
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 location が null の場合に発生します。
IllegalArgumentException -
引数 location に指定された文字列が "comm:" 、 "obex:" 、 "socket:" 、 "datagram:" で開始する場合に発生します。
IllegalArgumentException -
引数 location に不正な場所が指定された場合に発生します。
SecurityException -
セキュリティ上の制約に触れた場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getMovie

public static final MediaMovie getMovie(String location)

場所を指定してメディアムービーオブジェクトを取り出します。

location 指定のフォーマット形式が正しくない場合 、引数指定誤りになります。

パラメータ:
location - 場所を指定します。
戻り値:
メディアムービーオブジェクトを返します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 location が null の場合に発生します。
IllegalArgumentException -
引数 location に指定された文字列が "comm:" 、 "obex:" 、 "socket:" 、 "datagram:" で開始する場合に発生します。
IllegalArgumentException -
引数 location に不正な場所が指定された場合に発生します。
SecurityException -
セキュリティ上の制約に触れた場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getImage

public static final MediaImage getImage(java.io.InputStream in)
ストリームを指定してメディアイメージオブジェクトを取り出します。 ストリームからは、メディアイメージのファイルイメージを取り出せる必要があります。

パラメータ:
in - 入力ストリームを指定します。
戻り値:
メディアイメージオブジェクトを返します。
例外:
NullPointerException -
引数 in が null の場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getSound

public static final MediaSound getSound(java.io.InputStream in)

ストリームを指定してメディアサウンドオブジェクトを取り出します。 ストリームからは、メディアサウンドのファイルイメージを取り出せる必要があります。

パラメータ:
in - 入力ストリームを指定します。
戻り値:
メディアサウンドオブジェクトを返します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 in が null の場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getAvatarData

public static final AvatarData getAvatarData(java.io.InputStream in) [iアプリオプションAPI]

ストリームを指定してアバターデータオブジェクトを取り出します。 ストリームからは、アバターデータのファイルイメージを取り出せる必要があります。

端末によっては、このメソッドをサポートしていない場合があります。 その場合には、例外 UnsupportedOperationException が発生します。

パラメータ:
in - 入力ストリームを指定します。
戻り値:
アバターデータオブジェクトを返します。
例外:
UnsupportedOperationException -
端末がこのメソッドをサポートしていない場合に発生します。
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 in が null の場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getMovie

public static final MediaMovie getMovie(java.io.InputStream in)

ストリームを指定してメディアムービーオブジェクトを取り出します。 ストリームからは、メディアムービーのファイルイメージを取り出せる必要があります。

パラメータ:
in - 入力ストリームを指定します。
戻り値:
メディアムービーオブジェクトを返します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 in が null の場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getImage

public static final MediaImage getImage(byte[] data)
バイト配列を指定してメディアイメージオブジェクトを取り出します。 バイト配列には、メディアイメージのファイルイメージが格納されている必要があります。

パラメータ:
data - 入力バイト配列を指定します。
戻り値:
メディアイメージオブジェクトを返します。
例外:
NullPointerException -
引数 data が null の場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getSound

public static final MediaSound getSound(byte[] data)

バイト配列を指定してメディアサウンドオブジェクトを取り出します。 バイト配列には、メディアサウンドのファイルイメージが格納されている必要があります。

パラメータ:
data - 入力バイト配列を指定します。
戻り値:
メディアサウンドオブジェクトを返します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 data が null の場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getAvatarData

public static final AvatarData getAvatarData(byte[] data) [iアプリオプションAPI]

バイト配列を指定してアバターデータオブジェクトを取り出します。 バイト配列には、アバターデータのファイルイメージが格納されている必要があります。

端末によっては、このメソッドをサポートしていない場合があります。 その場合には、例外 UnsupportedOperationException が発生します。

パラメータ:
data - 入力バイト配列を指定します。
戻り値:
アバターデータオブジェクトを返します。
例外:
UnsupportedOperationException -
端末がこのメソッドをサポートしていない場合に発生します。
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 data が null の場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

getMovie

public static final MediaMovie getMovie(byte[] data)

バイト配列を指定してメディアムービーオブジェクトを取り出します。 バイト配列には、メディアムービーのファイルイメージが格納されている必要があります。

パラメータ:
data - 入力バイト配列を指定します。
戻り値:
メディアムービーオブジェクトを返します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 data が null の場合に発生します。
MediaException -
(NO_RESOURCES)
システムリソースの不足などでオブジェクトが生成できなかった場合に発生します。

use

public static final void use(MediaImage[] images,
                             boolean useOnce)
                      throws IterationAbortedException

指定されたイメージを、 まとめて利用可能にします。

第 1 引数で指定された全イメージについて「一度きりの利用」 とするかどうかを第 2 引数 useOnce で指定できます。 「一度きりの利用」についての詳細は MediaResource.use(MediaResource, boolean) の第 2 引数についての説明を参照してください。

メディアイメージの中には、 通信を行わないと利用可能に出来ないものも存在しますが、 引数の中にそのようなメディアイメージが指定されていても正しく動作します。

指定されたメディアイメージのうち、 1 つでも use に失敗した場合には、例外 IterationAbortedException が発生します。 その場合、IterationAbortedException.getAbortedIndex() によって、use に失敗したメディアイメージが格納されていた 配列のインデックス値が取得できます。 また、IterationAbortedException.getCause() によって、 use に失敗した原因となった例外オブジェクトを取得できます。 なお、以下の 2 点について注意してください。

このメソッド呼び出しにより、配列に格納されているメディアイメージが、 どのような順番で利用可能となるかは機種依存です。 このメソッド呼び出しからリターンした時点で、 全てのメディアイメージが利用可能状態になっていることのみが保証されています。

配列の中に、既に利用可能状態のメディアイメージが含まれている場合、 そのメディアイメージに対しては何も行われません。 また、配列中の null が指定された要素は単に無視され、 非 null の要素のみが処理対象となります。

パラメータ:
images - 利用可能にしたいメディアイメージの集合を格納した配列を指定します。
useOnce - 引数 images で指定した全イメージについて、 「一度きりの利用」としたい場合には true を、 そうでない場合には false を指定します。
例外:
NullPointerException -
引数 images に null が指定された場合に発生します。
IterationAbortedException -
配列 images に格納されているメディアイメージのいずれかが、 use に失敗した場合に発生します。

use

public static final void use(MediaSound[] sounds,
                             boolean useOnce)
                      throws IterationAbortedException

指定されたサウンドを、 まとめて利用可能にします。

引数に指定できるのがメディアサウンドである事以外は、 use(MediaImage[], boolean) と同じです。

パラメータ:
sounds - 利用可能にしたいメディアサウンドの集合を格納した配列を指定します。
useOnce - 引数 sounds で指定した全サウンドについて、 「一度きりの利用」としたい場合には true を、 そうでない場合には false を指定します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
NullPointerException -
引数 sounds に null が指定された場合に発生します。
IterationAbortedException -
配列 sounds に格納されているメディアサウンドのいずれかが、 use に失敗した場合に発生します。

createMediaImage

public static final MediaImage createMediaImage(int width,
                                                int height)

画像の幅・高さを指定して、 空のメディアイメージを生成します。

これによって生成されたメディアイメージの振る舞いは以下の通りです。

このメソッドは、まだどの画像を使うかは決まっていないが、 必要な内部データ領域の最大サイズが分かっている場合に有用です。 例えば、ひとつのメディアイメージで、 画像 a, b, c を使い回す場合を考えます。 画像は a, b, c の順番で利用するが、 縦・横サイズの一番大きな画像は b である場合に、 以下のようなコードを書くことで、 サイズオーバになることなく、a, b, c 全ての画像を使い回すことが出来ます。

 // 画像 b の縦・横サイズで内部データ領域を確保
 MediaImage empty = MediaManager.createMediaImage(画像 b の縦・横サイズ);
 MediaImage a = MediaManager.getImage(画像 a のデータ);
 a.use(empty, true); // emptyで確保した内部データ領域を画像 a で上書き
 // ここで画像 a を利用する
 MediaImage b = MediaManager.getImage(画像 b のデータ);
 b.use(a, true); // a で使っていた内部データ領域を画像 b で利用
 // ここで画像 b を利用する
 MediaImage c = MediaManager.getImage(画像 c のデータ);
 c.use(b, true); // b で使っていた内部データ領域を画像 c で利用
 // ここで画像 c を利用する

[Star-2.0 以降]
このメソッドで作成したメディアイメージの内部データ領域を PNG 画像で上書きすることはできません。PNG 画像に対して内部データ領域の再利用を行いたい場合は createMediaImage(int, int, boolean)を利用して下さい。

パラメータ:
width - 生成したい空のメディアイメージの幅を指定します。
height - 生成したい空のメディアイメージの高さを指定します。
戻り値:
空のメディアイメージを生成して返します。
例外:
IllegalArgumentException -
引数 width 、 height のいずれかに 0 または 負の値が指定された場合に発生します。
MediaException -
(NO_RESOURCES)
必要なリソースが確保できなかった場合に発生します。

createMediaImage

public static final MediaImage createMediaImage(int width,
                                                int height,
                                                boolean reusable)

画像の幅・高さ、PNG 画像に対する内部データ領域の再利用可否を指定して、 空のメディアイメージを生成します。

引数 reusable に true を指定した場合、内部データ領域の再利用時に PNG 画像で上書き可能となり、それ以外は createMediaImage(int, int) と同様に振る舞います。
false を指定した場合は、 createMediaImage(int, int) と同様に振る舞います。

このメソッドでは引数 reusable に true を指定すると、 α チャンネルの情報を保持するために createMediaImage(int, int) よりも多くの内部データ領域を確保します。 そのため、PNG 以外の画像フォーマットを利用するために空のメディアイメージを生成する場合には、 createMediaImage(int, int) を用いることを推奨します。

パラメータ:
width - 生成したい空のメディアイメージの幅を指定します。
height - 生成したい空のメディアイメージの高さを指定します。
reusable - PNG 画像に対する内部データ領域の再利用可否を指定します。
戻り値:
空のメディアイメージを生成して返します。
導入されたバージョン:
Star-2.0
例外:
IllegalArgumentException -
引数 width 、 height のいずれかに 0 または 負の値が指定された場合に発生します。
MediaException -
(NO_RESOURCES)
必要なリソースが確保できなかった場合に発生します。

createMediaSound

public static final MediaSound createMediaSound(int bytes)

サウンドのデータサイズ [bytes] を指定して、 空のメディアサウンドを生成します。

これによって生成されたメディアサウンドの振る舞いは以下の通りです。

このメソッドは、まだどのサウンドを使うかは決まっていないが、 必要な内部データ領域の最大サイズが分かっている場合に有用です。 具体的な使用例については createMediaImage(int, int) を参考にしてください。

パラメータ:
bytes - 生成したい空のメディアサウンドのデータサイズ [bytes] を指定します。
戻り値:
空のメディアサウンドを生成して返します。
例外:
IllegalStateException -
ミニアプリ実行時に呼び出された場合に発生します。
IllegalArgumentException -
引数 bytes に 0 または 負の値が指定された場合に発生します。
MediaException -
(NO_RESOURCES)
必要なリソースが確保できなかった場合に発生します。


NTT DOCOMO,INC.

本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。

Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。

FeliCaは、ソニー株式会社が開発した非接触ICカードの技術方式です。FeliCaは、ソニー株式会社の登録商標です。

「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。

その他記載された会社名、製品名などは該当する各社の商標または登録商標です。