com.jblend.media
クラス MediaFactory

java.lang.Object
  |
  +--com.jblend.media.MediaFactory

public class MediaFactory
extends java.lang.Object

メディアデータに固有のデータ保持クラス、およびプレイヤーを自動的に生成するためのクラスです。

MediaFactoryクラスを使用すると、再生するメディアの種類が未知である場合にも、その種類を自動判別してMediaPlayerから派生されたプレイヤーを生成することができます。

プレイヤーの生成はMediaFactoryのgetMediaPlayer()メソッドで行います。getMediaPlayer()は、再生するメディアデータのurlを指定するgetMediaPlayer(java.lang.String name)と、バイト配列で指定するgetMediaPlayer(byte[] data)の2種類が用意されています。getMediaPlayer()は、指定されたデータに基いてメディアデータ保持クラス(MediaData派生クラス)およびプレイヤーのクラス(MediaPlayer派生クラス)を決定して生成します。そして、メディアデータを設定した状態でプレイヤーのインスタンスを呼び出し元に返します。

取得されたプレイヤーは、必要に応じてinstanceof演算子を用いてどのクラスあるいはインタフェースの実装であるかを確認して使用してください。下記に例を示します。

   //data はバイト配列とします
   try{
       MediaPlayer player = MediaFactory.getMediaPlayer(data)
       if(player instanceof MediaImageOperator){    // playerは画像を扱うプレイヤー
           int mediaHeight = ((MediaImageOperator)player).getMediaHeight();
           int mediaWidth  = ((MediaImageOperator)player).getMediaWidth();
           …
           if(player instanceof SmafPlayer){        //SmafPlayerの場合の処理
               …
           }
           …
       }
       else if(player instanceof SmdPlayer){        //Playerは画像を扱わないSmdPlayer
           …
       }
       …
   }
   catch(IllegalArgumentException ea){              //該当するプレイヤーがないときの処理
   }
   catch(java.io.IOException ei){                   //データの読み込みに失敗したときなどの処理
   } 
   catch(NullPointerException en){                  //dataがnullのときの処理
   }


フィールドの概要
static int MEDIA_TYPE_KARAOKE
          メディアタイプ Karaoke getMediaPlayer(java.lang.String, int), getMediaPlayer(byte[], int) FileUtility.getMediaPlayer(java.lang.String, int)に使用するメディアタイプです。
static int MEDIA_TYPE_SMAF
          メディアタイプ Smaf getMediaPlayer(java.lang.String, int), getMediaPlayer(byte[], int) FileUtility.getMediaPlayer(java.lang.String, int)に使用するメディアタイプです。
 
メソッドの概要
static MediaPlayer getMediaPlayer(byte[] data)
          メディアプレイヤーを取得する。
static MediaPlayer getMediaPlayer(byte[] data, int type)
          メディアプレイヤーを取得する。
static MediaPlayer getMediaPlayer(java.lang.String name)
          メディアプレイヤーを取得する。
static MediaPlayer getMediaPlayer(java.lang.String name, int type)
          メディアプレイヤーを取得する。
 
クラス java.lang.Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

MEDIA_TYPE_SMAF

public static final int MEDIA_TYPE_SMAF
メディアタイプ Smaf

getMediaPlayer(java.lang.String, int), getMediaPlayer(byte[], int) FileUtility.getMediaPlayer(java.lang.String, int)に使用するメディアタイプです。

導入されたバージョン:
JSCL 1.3.2

MEDIA_TYPE_KARAOKE

public static final int MEDIA_TYPE_KARAOKE
メディアタイプ Karaoke

getMediaPlayer(java.lang.String, int), getMediaPlayer(byte[], int) FileUtility.getMediaPlayer(java.lang.String, int)に使用するメディアタイプです。

導入されたバージョン:
JSCL 1.3.2
メソッドの詳細

getMediaPlayer

public static MediaPlayer getMediaPlayer(java.lang.String name)
                                  throws java.io.IOException
メディアプレイヤーを取得する。
パラメータ:
name - メディアデータのリソース名
戻り値:
MediaPlayer - メディアプレイヤー
例外:
java.lang.IllegalArgumentException - 該当するプレイヤーがない場合に発生します。
NullPointerException - データがnullの場合に発生します。
java.io.IOException - データの読み込みの失敗などが発生した場合に発生します。
java.lang.RuntimeException - ネイティブプレイヤーの生成に失敗した場合に発生します。

getMediaPlayer

public static MediaPlayer getMediaPlayer(byte[] data)
メディアプレイヤーを取得する。
パラメータ:
data - メディアデータ
戻り値:
MediaPlayer - メディアプレイヤー
例外:
NullPointerException - データがnullの場合に発生します。
java.lang.IllegalArgumentException - サポートしていないデータの場合に発生します。
java.lang.RuntimeException - ネイティブプレイヤーの生成に失敗した場合に発生します。

getMediaPlayer

public static MediaPlayer getMediaPlayer(java.lang.String name,
                                         int type)
                                  throws java.io.IOException
メディアプレイヤーを取得する。

引数typeには MediaFactory で定義されているメディアタイプを指定してください。 メディアデータがSmafデータの場合、引数typeに指定されたメディアプレイヤーを生成します。 引数typeが不正な場合は SmafPlayer を生成します。

パラメータ:
name - メディアデータのリソース名
type - メディアプレイヤーの種別
戻り値:
MediaPlayer - メディアプレイヤー
例外:
java.lang.IllegalArgumentException - 該当するプレイヤーがない場合に発生します。
NullPointerException - データがnullの場合に発生します。
java.io.IOException - データの読み込みの失敗などが発生した場合に発生します。
java.lang.RuntimeException - ネイティブプレイヤーの生成に失敗した場合に発生します。
導入されたバージョン:
JSCL 1.3.2

getMediaPlayer

public static MediaPlayer getMediaPlayer(byte[] data,
                                         int type)
メディアプレイヤーを取得する。

引数typeには MediaFactory で定義されているメディアタイプを指定してください。 メディアデータがSmafデータの場合、引数typeに指定されたメディアプレイヤーを生成します。 引数typeが不正な場合は SmafPlayer を生成します。

パラメータ:
data - メディアデータ
type - メディアプレイヤーの種別
戻り値:
MediaPlayer - メディアプレイヤー
例外:
NullPointerException - データがnullの場合に発生します。
java.lang.IllegalArgumentException - サポートしていないデータの場合に発生します。
java.lang.RuntimeException - ネイティブプレイヤーの生成に失敗した場合に発生します。
導入されたバージョン:
JSCL 1.3.2