| 
 | ||||||||
| フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||
java.lang.Object
  |
  +--com.jblend.media.smaf.phrase.PhraseTrackBase
        |
        +--com.jblend.media.smaf.phrase.PhraseTrack
PhraseTrackはフレーズデータを再生するためのクラスです。 以下にこのクラスの機能について説明します。
個々のフレーズデータを再生するにはPhraseTrackオブジェクトを使用します。PhraseTrackオブジェクトは、PhrasePlayerオブジェクトのgetTrack(int track)、またはgetTrack()メソッドを用いて取得します。PhraseTrackクラスのメソッドは概略、下記のように分類できます。以降、この分類に沿って説明します。
Javaアプリケーションは、PhraseTrackオブジェクトに、再生するフレーズデータをsetPhrase()メソッドで設定する必要があります。また、設定してあるPhraseオブジェクトをremovePhrase()メソッドで削除することが可能です。削除すると、再度setPhrase()でPhraseオブジェクトを設定できます。一旦フレーズ再生を開始したら、停止するまでsetPhrase()、removePhrase()を呼び出すことはできません。呼び出すと例外がスローされます。
フレーズ再生に関するイベントを待ち受けるためには、再生の前に、PhraseTrackListenerインタフェースを実装したリスナを、PhraseTrackオブジェクトのsetEventListener()メソッドを用いて設定します。イベントはPhraseTrackListenerインタフェースのeventOccurred()メソッドのパラメータで通知されます。イベント通知として下記の場合があります。
ユーザーイベントの値とフレーズデータフォーマットの関連についての詳細は、別の仕様書に記載されます。
フレーズ再生の開始前、または再生中に音量を設定できます。音量の設定はsetVolume()メソッドを使用します。また、mute()メソッドで消音が可能です。isMute()メソッドでは、消音しているかどうかを確認できます。  
getState()メソッドで、現在のトラックの状態を確認できます。getState()が返すトラックの状態を表1に示します。
| 状態 | 意味 | 
|---|---|
| PhraseTrack.NO_DATA | データ未設定 | 
| PhraseTrack.PLAYING | 再生中 | 
| PhraseTrack.PAUSED | 一時停止中 | 
| PhraseTrack.READY | 停止中 | 
PhraseTrackオブジェクトを取得するときに、Javaアプリケーション側でトラック番号を指定しなかったときには、PhrasePlayerオブジェクトで自動的にトラック番号を決定します。PhraseTrackオブジェクトでgetID()メソッドを呼び出し、割り当てられているトラック番号を取得できます。
PhraseTrackオブジェクトにPhraseオブジェクトが設定されていると、再生を開始できます。再生、停止、一時停止、再開のためのメソッドは下記のようになります。
play()メソッドで無限の繰り返しを指定したときは、最終的にはstop()メソッドで再生を停止させる必要があります。再生を開始したら、停止するまでは、フレーズデータの設定に関するメソッド(setPhrase()、removePhrase())を呼び出すことはできません。呼び出すと例外がスローされます。
2.フレーズデータの同期再生
フレーズプレイヤーではフレーズデータ同士の同期再生が可能です。
オーディオデータは同期再生できません。フレーズデータのみ同期再生が可能です。
setSubjectTo()メソッドによって、トラック間の同期設定が可能です。スレーブトラックとなるPhraseTrackオブジェクトのsetSubjectTo()を呼び出し、マスタートラックとなるPhraseTrackオブジェクトを指定します。例えば、track0をマスタートラックとし、track1, track2をスレーブトラックとしたいときは、下記のようにそれぞれのスレーブトラックについてsetSubjectTo()を呼び出します。  
	try{
		....
		track1.setSubjectTo(track0);
		track2.setSubjectTo(track0);
	}
	catch(...){
	...
setSubjectTo()メソッドによる同期設定を行うには下記の条件が満たされている必要があります。
setSubjectTo()は、これらの条件が成立しない場合は例外をスローします。
スレーブトラックとなっているPhraseTrackオブジェクトのマスタートラックを取得するには、スレーブトラックとなっているPhraseTrackオブジェクトのgetSyncMaster()メソッドを呼び出します。同期関係が設定されていないときはnullが返されます。
スレーブトラックとなっているPhraseTrackオブジェクトのsetSubjectTo()メソッドを呼び出し、マスタートラックオブジェクトとしてnullを指定するとマスタートラックとの同期関係は解除されます。あるマスタートラックに対する同期関係をすべて解除するには、スレーブとなっているトラックすべてについて、setSubjectTo()を呼び出します。track0がマスタートラック、track1, track2がスレーブトラックになっているとき、すべての同期関係を解除するには下記のようにします。  
track1.setSubjectTo(null); track2.setSubjectTo(null);
同期関係が設定されているPhraseTrackオブジェクトに対して、removePhrase()メソッドでフレーズデータを削除すると関連する同期関係が解除されます。
同期関係の解除はトラックが停止中のときのみ可能です。再生中のトラックに対して同期設定を解除しようとすると例外が発生します。
同期再生の開始や停止のためには、マスタートラックとなっているPhraseTrackオブジェクトのplay()メソッド、またはstop()メソッドを呼び出します。スレーブトラックとなっているPhraseTrackオブジェクトのplay()、およびstop()は正常終了しますが、何もしません。(再生の開始や停止は行われず、無視されます。)
同期設定されているトラックの再生において、個々のトラックの再生に関するイベント通知はトラック毎に発生します。
| フィールドの概要 | |
| static int | DEFAULT_PANPOTトラックのパンポットの初期値を示します。 | 
| static int | DEFAULT_VOLUMEトラックの音量の初期値を示します。 | 
| static int | NO_DATA再生データがないことを示します。 | 
| static int | PAUSED一時停止中であることを示します。 | 
| static int | PLAYING再生中であることを示します。 | 
| static int | READY再生可能な状態であることを示します。 | 
| メソッドの概要 | |
|  int | getID()トラック番号を返します。 | 
|  int | getPanpot()パンポット(音の定位)を返します。 | 
|  Phrase | getPhrase()トラックに設定されているフレーズを返します。 | 
|  int | getState()トラックの状態を返します。 | 
|  PhraseTrack | getSyncMaster()同期のマスタートラックを返します。 | 
|  int | getVolume()再生音量を返します。 | 
|  boolean | isMute()ミュートされているかどうかを判別します。 | 
|  void | mute(boolean mute)再生をミュート(消音)します。 | 
|  void | pause()再生を一時停止します。 | 
|  void | play()フレーズを再生します。 | 
|  void | play(int loop)フレーズを繰り返し再生します。 | 
|  void | removePhrase()フレーズ設定を削除します。 | 
|  void | resume()一時停止した再生を再開します。 | 
|  void | setEventListener(PhraseTrackListener l)イベントリスナを登録します。 | 
|  void | setPanpot(int value)パンポット(音の定位)を設定します。 | 
|  void | setPhrase(Phrase p)トラックにフレーズを設定する。 | 
|  void | setSubjectTo(PhraseTrack master)指定されたトラックの同期スレーブとします | 
|  void | setVolume(int value)再生音量を設定します。 | 
|  void | stop()再生を停止します。 | 
| クラス java.lang.Object から継承したメソッド | 
| equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| フィールドの詳細 | 
public static final int NO_DATA
public static final int READY
public static final int PLAYING
public static final int PAUSED
public static final int DEFAULT_VOLUME
public static final int DEFAULT_PANPOT
| メソッドの詳細 | 
public void setPhrase(Phrase p)
p - フレーズNullPointerException - 指定された p が null の場合に発生するjava.lang.IllegalArgumentException - フレーズデータの使用トラック数が確保したトラックと合わない場合に発生するjava.lang.RuntimeException - Nativeフレーズプレイヤーに設定できなかった場合に発生するpublic Phrase getPhrase()
public void removePhrase()
com.jblend.media.smaf.phrase.PhraseTrackBase 内の removePhraseIllegalStateException - PhrasePlayerが未生成の場合に発生するjava.lang.RuntimeException - Nativeフレーズプレイヤーから削除できなかった場合に発生するpublic void setSubjectTo(PhraseTrack master)
master - マスタートラック、null が指定されたときは解除java.lang.RuntimeException - Nativeフレーズプレイヤーが設定できなかった場合に発生するpublic PhraseTrack getSyncMaster()
public void play()
public void play(int loop)
loop - 繰り返し回数(255 回まで、0 なら無限に繰り返す)java.lang.RuntimeException - Nativeフレーズプレイヤーが再生できなかった場合に発生するpublic void stop()
public void pause()
java.lang.RuntimeException - Nativeフレーズプレイヤーが一時停止できなかった場合に発生するpublic void resume()
java.lang.RuntimeException - Nativeフレーズプレイヤーが再開できなかった場合に発生するpublic int getState()
public void setVolume(int value)
value - 音量(0 : 無音、127 : 最大)public int getVolume()
public void setPanpot(int value)
value - 定位(0 : 左端、64 : 中央、127 : 右端)public int getPanpot()
public void mute(boolean mute)
mute - true ならミュート、false なら解除public boolean isMute()
public int getID()
public void setEventListener(PhraseTrackListener l)
l - イベントリスナ| 
 | ||||||||
| フレームあり フレームなし | ||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||