| 
 | ||||||||
| フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||
java.lang.Object
  |
  +--javax.microedition.lcdui.Displayable
        |
        +--javax.microedition.lcdui.Canvas
              |
              +--com.kddi.media.MediaPlayerBox
アプリケーションから見えるメディアプレイヤークラスです。
 setResource() 呼び出しによってアプリケーションから渡される   
 MediaResource に対応する MediaPlayer のサブクラスを実体化して、   
 メディアの再生を行います。   
 実際の動作はこのサブクラスに依存するので、アプリケーションが MediaPlayerBox クラスの   
 メソッドを呼び出しても、期待する動作が得られるとは限りません。
 
以下にメディアプレイヤーの操作について説明します。
メディアプレイヤーは、MediaPlayerBoxクラスのコンストラクタで生成します。
MediaPlayerBoxクラスには、下記の3種類のオーバーロードされたコンストラクタがあります。
modeパラメータには、メディアプレイヤーの再生モードを指定します。再生モードにはフォアグラウンドとバックグラウンドの2種類があります。上記の一番目のコンストラクタでは、再生モードはフォアグラウンドになります。2番目と3番目では再生モードをmodeパラメータに指定します。フォアグラウンド再生のときはFOREGROUND、バックグラウンド再生のときはBACKGROUNDを指定します。
それぞれのモードは表1のようになります。
| 再生モード | モード内容 | 
|---|---|
| フォアグラウンド | フォアグラウンド再生モードでは、SMAFメディアの音声再生が可能です。 このモードではメディア再生時にJava仮想マシンにCPU時間が割り当てられません。Javaアプリケーションが再生のためのメソッドを呼び出すと、Java実行環境は再生が終わるまでブロックされます。 その結果、メディア再生時に発生するイベントは、メディア再生が終了するまでキューに保持され、終了すると同時に連続的にJavaアプリケーションに通知されることになります。 | 
| バックグラウンド | バックグラウンド再生モードでは、SMAFメディアの音声再生が可能です。 このモードではメディア再生時にJava仮想マシンにもCPU時間が割り当てられます。メディア再生とJavaアプリケーションは同時に実行できます。Javaアプリケーションは、メディア再生時に発生するイベントを、イベント発生のタイミングで受け取ることができます。 | 
生成時にコンストラクタで指定するか、MediaPlayerBoxクラスのsetResource()メソッドでメディアを設定する必要があります。設定されたメディアとメディアプレイヤーとの対応付けを削除するには、unsetResource()を使用します。
setResource()は、メディアが設定されていない状態、すなわちプレイヤーが停止状態で、かつメディアが設定されていない状態で呼び出してください。既にメディアプレイヤーにメディアが設定されているときに、setResource()を呼び出すとIllegalStateException例外がスローされます。また、setResource()にnullを指定すると、 NullPointerExceptionがスローされます。   
unsetResource()は、メディアプレイヤーを停止状態にしてから呼び出してください。再生中、または一時停止中にunsetResource()を呼び出しても無効です。この場合例外は発生しません。この状態でsetResource()を呼び出すと、まだメディアは設定されているので例外が発生します。
再生中、または一時停止中のメディアプレイヤーにメディアを設定しなおすには、メディアプレイヤーを停止状態にしてからunsetResource()でメディアとの対応付けを削除したのちにsetResource()を呼び出す必要があります。
MediaResourceオブジェクトが扱うリソースデータ内部のデータ構造について、Javaアプリケーションは一切関知する必要はありません。
メディアデータを設定する場合でも、Javaアプリケーションはデータの内部構造に関して関知する必要はありませんが、MediaPlayerオブジェクトがそのメディアデータを再生できない可能性を考慮する必要があります。再生できない場合は、メディアを設定した時点にIllegalArgumentException例外がスローされます。
MediaPlayerBoxオブジェクトにMediaResourceオブジェクトが設定されると、メディアの再生が可能な状態になります。ただし、この状態ではメディアはまだユーザーに表示されていません。
フォアグランドでは再生中にはJava仮想マシンにCPU時間が割り当てられず、再生が終了するまでplay()、またはplay(int count)からは戻りません。従って、Javaアプリケーションが再生を停止したり、一時停止することはできません。
再生が終了した後で、実行環境側で再描画のための処理が行われます。別のCanvas派生クラスのオブジェクトがその時点で「現在のDisplayable」になっている場合は、そのpaint()メソッドが呼び出されます。
MediaPlayerBoxオブジェクトがバックグラウンドモードで生成されているときは、JavaアプリケーションはDisplayオブジェクトのsetCurrent()メソッドで設定されている画面を表示画面として、再生中も描画することができます。
再生中の停止はstop()メソッドで、一時停止はpause()メソッドで行います。
バックグラウンド再生中に一時停止したメディアプレイヤーに対して、resume()メソッドで再開できます。
一時停止中のメディアプレイヤーを停止するにはstop()メソッドを呼び出します。
一時停止状態のメディアプレイヤーに別のメディアを設定しなおして、再生を再開することはできません。メディアの再設定は、再生を停止してから行ってください。
MediaEventListenerは、メディアプレイヤーが発生するイベントを待ち受けるリスナーを実装するためのインタフェースです。MediaEventListenerを実装したリスナーは、MediaPlayerBoxクラスのaddMediaEventListener()メソッドでメディアプレイヤーに設定して使用します。
リスナーが設定されているときにイベントが発生すると、リスナーのstateChanged()メソッドが呼び出され、そのtypeパラメータにイベントの種類が示されます。イベントの内容を表3に示します。
| イベント内容 | stateChanged() type パラメータ | 
|---|---|
| メディアプレイヤーがメディアの再生を開始したとき | PLAY | 
| メディアプレイヤーがメディアの再生を停止したとき | STOP | 
| メディアプレイヤーがメディアの再生を一時停止したとき | PAUSE | 
| メディアプレイヤーがメディアの再生を再開したとき | RESUME | 
| Javaアプリケーションがメディアプレイヤーに対応付けられているメディアを破棄したとき | RESOURCE_DISPOSED | 
フォアグランド再生では、再生が終了するまでJava仮想マシンにCPU時間が割り当てられません。再生が終了するとplay()メソッドが戻り、イベントリスナーの呼び出しが連続して発生します。
Javaアプリケーションがメディアプレイヤーに対応付けられているメディアを破棄したとき、RESOURCE_DISPOSEDおよびSTOPを伝えるstateChanged()の呼び出しが発生します。この2つのイベントの発生順は不定です。
下記の場合はイベントは発生されません
stateChanged()のoptionパラメータは将来の仕様拡張のために予約されています。現状では0が通知されます。optionは参照しないようにしてください。
setAttribute()、getAttribute()は将来の拡張のために定義されています。Javaアプリケーションはこれらのメソッドを使用する必要はありません。hide()、show()は使用しないでください。stop()、pause()、またはresume()を呼び出しても無視されます。メソッド呼び出しは成功しますが、何も起こりません。MediaEventListenerによるイベント通知も行われません。
| フィールドの概要 | |
| protected  MediaEventListener | _listenerメディアのイベントを待ち受けるリスナーです。 | 
| static int | BACKGROUND音声のみ再生することを表します。 | 
| static int | FOREGROUND画像と音声を再生することを表します。 | 
| static int | PAUSEメディア再生の一時停止を示すイベントを表します。 | 
| static int | PLAYメディアの再生開始を示すイベントを表します。 | 
| static int | RESOURCE_DISPOSEDリソースが破棄されたことを示すイベントを表します。 | 
| static int | RESUMEメディア再生の再開を示すイベントを表します。 | 
| static int | STOPメディアの再生終了を示すイベントを表します。 | 
| クラス javax.microedition.lcdui.Canvas から継承したフィールド | 
| DOWN, FIRE, GAME_A, GAME_B, GAME_C, GAME_D, KEY_NUM0, KEY_NUM1, KEY_NUM2, KEY_NUM3, KEY_NUM4, KEY_NUM5, KEY_NUM6, KEY_NUM7, KEY_NUM8, KEY_NUM9, KEY_POUND, KEY_STAR, LEFT, RIGHT, UP | 
| コンストラクタの概要 | |
| MediaPlayerBox()デフォルトのコンストラクタです。 | |
| MediaPlayerBox(int flag)コンストラクタです。 | |
| MediaPlayerBox(MediaResource resource,
               int flag)コンストラクタです。 | |
| メソッドの概要 | |
|  void | addMediaEventListener(MediaEventListener l)メディアの状態変化を通知する listener を登録します。 | 
|  int | getAttribute(int attr)メディアの属性の値を返します。 | 
| protected  int | getMode()再生モードを返します。 | 
|  int | getPitch()現在の再生ピッチ(キー)を返します。 | 
| protected  MediaPlayer | getPlayer()現在のメディアプレイヤーオブジェクトを返します。 | 
|  MediaResource | getResource()対応付けられているメディアリソースを返します。 | 
|  int | getTempo()現在の再生速度を返します。 | 
|  int | getVolume()現在の再生音量を返します。 | 
|  void | hide()推奨されていません。 Display.setCurrent() を使用してください。 | 
| protected  void | hideNotify() | 
| protected  MediaPlayer | instantiatePlayer(MediaResource resource)メディアに対応するメディアプレイヤーオブジェクトを生成します。 | 
| protected  void | paint(javax.microedition.lcdui.Graphics g)メディアプレイヤーを描画します。 | 
|  void | pause()メディアを一時停止します。 | 
|  void | play()メディアを再生します。 | 
|  void | play(int count)繰り返してメディアを再生します。 | 
|  void | removeMediaEventListener(MediaEventListener l)メディアの状態変化を通知する listener を削除します。 | 
|  void | resume()メディアの一時停止を解除します。 | 
|  void | setAttribute(int attr,
             int value)メディアの属性の値を設定します。 | 
|  void | setPitch(int pitch)再生ピッチ(キー)を設定します。 | 
| protected  void | setPlayerAttributes()メディアプレイヤーの属性を設定します。 | 
|  void | setResource(MediaResource resource)メディアリソースを対応付けます。 | 
|  void | setTempo(int tempo)再生速度を設定します。 | 
|  void | setVolume(int volume)再生音量を設定します。 | 
|  void | show()推奨されていません。 Display.setCurrent() を使用してください。 | 
| protected  void | showNotify() | 
|  void | stop()メディアを停止します。 | 
|  void | unsetResource(MediaResource resource)メディアリソースの対応付けをはずします。 | 
| クラス javax.microedition.lcdui.Canvas から継承したメソッド | 
| getGameAction, getHeight, getKeyCode, getKeyName, getWidth, hasPointerEvents, hasPointerMotionEvents, hasRepeatEvents, isDoubleBuffered, keyPressed, keyReleased, keyRepeated, pointerDragged, pointerPressed, pointerReleased, repaint, repaint, serviceRepaints | 
| クラス javax.microedition.lcdui.Displayable から継承したメソッド | 
| addCommand, isShown, removeCommand, setCommandListener | 
| クラス java.lang.Object から継承したメソッド | 
| equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| フィールドの詳細 | 
public static final int RESOURCE_DISPOSED
public static final int PLAY
public static final int STOP
public static final int PAUSE
public static final int RESUME
public static final int FOREGROUND
public static final int BACKGROUND
protected MediaEventListener _listener
| コンストラクタの詳細 | 
public MediaPlayerBox()
MediaPlayerBox(null, FOREGROUND) と同じです。public MediaPlayerBox(int flag)
MediaPlayerBox(null, flag) と同じです。flag - FOREGROUND または BACKGROUNDjava.lang.IllegalArgumentException - 不正な flag が指定されたときに発生する
public MediaPlayerBox(MediaResource resource,
                      int flag)
resource - 対応付けるメディアリソースflag - FOREGROUND または BACKGROUNDjava.lang.IllegalArgumentException - 対応していない(再生できない)メディア、または不正な flag が指定されたときに発生するIllegalStateException - すでに破棄されている MediaResource オブジェクトが指定されたときに発生するjava.lang.RuntimeException - その他実行時エラーのときに発生する(フォアグラウンド再生をサポートしていない場合に FOREGROUND 指定など)| メソッドの詳細 | 
public void setResource(MediaResource resource)
MediaPlayerInterface 内の setResourceresource - 対応付けるメディアリソースIllegalStateException - すでにメディアリソースが対応付けられている状態で呼び出されたとき、または、すでに破棄されたメディアリソースが指定されたときに発生するjava.lang.IllegalArgumentException - 指定メディアの再生に対応していない場合に発生するNullPointerException - resource が null のときに発生するjava.lang.RuntimeException - その他実行時エラーのとき発生する(フォアグラウンド再生をサポートしていない場合に FOREGROUND 指定など)public void unsetResource(MediaResource resource)
MediaPlayerInterface 内の unsetResourceresource - 対応付けをはずすメディアリソースpublic MediaResource getResource()
MediaPlayerInterface 内の getResourcepublic void addMediaEventListener(MediaEventListener l)
 それまでに登録されていた listener は、登録解除となります。   
 引数に null を指定した場合、現在登録してある listener を指定して   
 removeMediaEventListener()
 を呼び出したのと同じ効果になります。   
 
MediaPlayerInterface 内の addMediaEventListenerl - 登録する MediaEventListenerpublic void removeMediaEventListener(MediaEventListener l)
現在登録されていない listener が指定された場合、無視されます。
MediaPlayerInterface 内の removeMediaEventListenerl - 削除する MediaEventListenerpublic void play()
MediaPlayerInterface 内の playIllegalStateException - メディアが対応付けられていないときに発生するpublic void play(int count)
MediaPlayerInterface 内の playcount - 再生繰返し回数IllegalStateException - メディアが対応付けられていないときに発生する   
public void stop()
MediaPlayerInterface 内の stopIllegalStateException - メディアが対応付けられていないときに発生するpublic void pause()
MediaPlayerInterface 内の pauseIllegalStateException - メディアが対応付けられていないときに発生するpublic void resume()
MediaPlayerInterface 内の resumeIllegalStateException - メディアが対応付けられていないときに発生する
public void setAttribute(int attr,
                         int value)
MediaPlayerInterface 内の setAttributeattr - 設定する属性value - 設定する値public int getAttribute(int attr)
MediaPlayerInterface 内の getAttributeattr - 属性public void setTempo(int tempo)
MediaPlayerInterface の記述: メディアの再生速度を、標準速度を 100 としたパーセンテージで設定します。 85 〜 115 程度が実用的な範囲です。 指定した値が 85 以下の場合は 85 に、115 以上の場合は 115 になります。
MediaPlayerInterface 内の setTempocom.kddi.media.MediaPlayerInterface からコピーされたタグ:tempo - 再生速度public int getTempo()
MediaPlayerInterface の記述: メディアの再生速度を、標準速度を 100 としたパーセンテージで返します。
MediaPlayerInterface 内の getTempocom.kddi.media.MediaPlayerInterface からコピーされたタグ:public void setPitch(int pitch)
MediaPlayerInterface の記述: メディアの再生キーを -6 〜 +6 の範囲で設定します。 0 を標準のキーとして、-1 から -6 に向けて半音階ずつ下がり、+1 から +6 に向けて半音階ずつ上がります。 指定した値が -6 以下の場合は -6 に、6 以上の場合は 6 になります。
MediaPlayerInterface 内の setPitchcom.kddi.media.MediaPlayerInterface からコピーされたタグ:pitch - 再生ピッチ(キー)public int getPitch()
MediaPlayerInterface の記述: メディアの再生キーを -6 〜 +6 の範囲で返します。 0 を標準のキーとして、-1 から -6 に向けて半音階ずつ下がり、+1 から +6 に向けて半音階ずつ上がります。
MediaPlayerInterface 内の getPitchcom.kddi.media.MediaPlayerInterface からコピーされたタグ:public void setVolume(int volume)
MediaPlayerInterface の記述: メディアの再生音量を 0 〜 100 の範囲で設定します。 0 が無音を表し、1 から 100 に向かって大きくなります。 指定した値が 0 以下の場合は 0 に、100 以上の場合は 100 になります。
移動機の実装により、段階ごとに丸める場合があります。
MediaPlayerInterface 内の setVolumecom.kddi.media.MediaPlayerInterface からコピーされたタグ:volume - 再生音量public int getVolume()
MediaPlayerInterface の記述: メディアの再生音量を 0 〜 100 の範囲で返します。 0 が無音を表し、1 から 100 に向かって大きくなります。
MediaPlayerInterface 内の getVolumecom.kddi.media.MediaPlayerInterface からコピーされたタグ:public void show()
MediaPlayerInterface 内の showpublic void hide()
MediaPlayerInterface 内の hideprotected void showNotify()
javax.microedition.lcdui.Canvas 内の showNotifyprotected void hideNotify()
javax.microedition.lcdui.Canvas 内の hideNotifyprotected void paint(javax.microedition.lcdui.Graphics g)
javax.microedition.lcdui.Canvas 内の paintg - 描画先のグラフィックコンテキストprotected MediaPlayer instantiatePlayer(MediaResource resource)
resource - 関連付けるメディアリソースjava.lang.IllegalArgumentException - 再生に対応していないメディアが指定されたときに発生するIllegalStateException - すでに破棄されたメディアリソースが指定されたときに発生するjava.lang.RuntimeException - その他実行時エラーのときに発生する(フォアグラウンド再生をサポートしていない場合に FOREGROUND 指定など)protected MediaPlayer getPlayer()
protected int getMode()
FOREGROUND または BACKGROUNDprotected void setPlayerAttributes()
 メディアプレイヤー(CMXPlayerクラスなど)のインスタンス生成時に、   
 再生音量(setVolume()で設定)などの属性を   
 一括設定します。
| 
 | ||||||||
| フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||