com.jblend.media.smaf.phrase
クラス PhraseTrack <Phase2.5>

java.lang.Object
  |
  +--com.jblend.media.smaf.phrase.PhraseTrackBase
        |
        +--com.jblend.media.smaf.phrase.PhraseTrack

public class PhraseTrack
extends com.jblend.media.smaf.phrase.PhraseTrackBase

PhraseTrackはフレーズデータを再生するためのクラスです。 以下にこのクラスの機能について説明します。


1. フレーズデータの再生

個々のフレーズデータを再生するにはPhraseTrackオブジェクトを使用します。PhraseTrackオブジェクトは、PhrasePlayerオブジェクトのgetTrack(int track)、またはgetTrack()メソッドを用いて取得します。PhraseTrackクラスのメソッドは概略、下記のように分類できます。以降、この分類に沿って説明します。

1.1. フレーズデータの設定・解除

Javaアプリケーションは、PhraseTrackオブジェクトに、再生するフレーズデータをsetPhrase()メソッドで設定する必要があります。また、設定してあるPhraseオブジェクトをremovePhrase()メソッドで削除することが可能です。削除すると、再度setPhrase()でPhraseオブジェクトを設定できます。一旦フレーズ再生を開始したら、停止するまでsetPhrase()removePhrase()を呼び出すことはできません。呼び出すと例外がスローされます。

1.2. イベントリスナ(PhraseTrackListener)の設定

フレーズ再生に関するイベントを待ち受けるためには、再生の前に、PhraseTrackListenerインタフェースを実装したリスナを、PhraseTrackオブジェクトのsetEventListener()メソッドを用いて設定します。イベントはPhraseTrackListenerインタフェースのeventOccurred()メソッドのパラメータで通知されます。イベント通知として下記の場合があります。

ユーザーイベントの値とフレーズデータフォーマットの関連についての詳細は、別の仕様書に記載されます。

1.3. トラックの状態取得・音量設定

フレーズ再生の開始前、または再生中に音量を設定できます。音量の設定はsetVolume()メソッドを使用します。また、mute()メソッドで消音が可能です。isMute()メソッドでは、消音しているかどうかを確認できます。 getState()メソッドで、現在のトラックの状態を確認できます。getState()が返すトラックの状態を表1に示します。

表1. トラック状態
状態 意味
PhraseTrack.NO_DATA データ未設定
PhraseTrack.PLAYING 再生中
PhraseTrack.PAUSED 一時停止中
PhraseTrack.READY 停止中

PhraseTrackオブジェクトを取得するときに、Javaアプリケーション側でトラック番号を指定しなかったときには、PhrasePlayerオブジェクトで自動的にトラック番号を決定します。PhraseTrackオブジェクトでgetID()メソッドを呼び出し、割り当てられているトラック番号を取得できます。

1.4.フレーズデータの再生、停止、一時停止、再開

PhraseTrackオブジェクトにPhraseオブジェクトが設定されていると、再生を開始できます。再生、停止、一時停止、再開のためのメソッドは下記のようになります。

play()
フレーズを再生します。繰り返し回数の指定も可能です。無限に繰り返すことも可能です。
stop()
再生中、または一時停止中のサウンド再生を停止します。
pause()
フレーズ再生を一時停止します。
resume()
一時停止しているフレーズ再生を再開します。

play()メソッドで無限の繰り返しを指定したときは、最終的にはstop()メソッドで再生を停止させる必要があります。再生を開始したら、停止するまでは、フレーズデータの設定に関するメソッド(setPhrase()removePhrase())を呼び出すことはできません。呼び出すと例外がスローされます。

2.フレーズデータの同期再生

フレーズプレイヤーではフレーズデータ同士の同期再生が可能です。

オーディオデータは同期再生できません。フレーズデータのみ同期再生が可能です。

2.1. 同期設定

setSubjectTo()メソッドによって、トラック間の同期設定が可能です。スレーブトラックとなるPhraseTrackオブジェクトのsetSubjectTo()を呼び出し、マスタートラックとなるPhraseTrackオブジェクトを指定します。例えば、track0をマスタートラックとし、track1, track2をスレーブトラックとしたいときは、下記のようにそれぞれのスレーブトラックについてsetSubjectTo()を呼び出します。

	try{
		....
		track1.setSubjectTo(track0);
		track2.setSubjectTo(track0);
	}
	catch(...){
	...

setSubjectTo()メソッドによる同期設定を行うには下記の条件が満たされている必要があります。

setSubjectTo()は、これらの条件が成立しない場合は例外をスローします。

スレーブトラックとなっているPhraseTrackオブジェクトのマスタートラックを取得するには、スレーブトラックとなっているPhraseTrackオブジェクトのgetSyncMaster()メソッドを呼び出します。同期関係が設定されていないときはnullが返されます。

2.2. 同期解除

スレーブトラックとなっているPhraseTrackオブジェクトのsetSubjectTo()メソッドを呼び出し、マスタートラックオブジェクトとしてnullを指定するとマスタートラックとの同期関係は解除されます。あるマスタートラックに対する同期関係をすべて解除するには、スレーブとなっているトラックすべてについて、setSubjectTo()を呼び出します。track0がマスタートラック、track1, track2がスレーブトラックになっているとき、すべての同期関係を解除するには下記のようにします。

	track1.setSubjectTo(null);
	track2.setSubjectTo(null);

同期関係が設定されているPhraseTrackオブジェクトに対して、removePhrase()メソッドでフレーズデータを削除すると関連する同期関係が解除されます。

同期関係の解除はトラックが停止中のときのみ可能です。再生中のトラックに対して同期設定を解除しようとすると例外が発生します。

2.3. 再生・停止

同期再生の開始や停止のためには、マスタートラックとなっている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
 

フィールドの詳細

NO_DATA

public static final int NO_DATA
再生データがないことを示します。

READY

public static final int READY
再生可能な状態であることを示します。

PLAYING

public static final int PLAYING
再生中であることを示します。

PAUSED

public static final int PAUSED
一時停止中であることを示します。

DEFAULT_VOLUME

public static final int DEFAULT_VOLUME
トラックの音量の初期値を示します。

DEFAULT_PANPOT

public static final int DEFAULT_PANPOT
トラックのパンポットの初期値を示します。
メソッドの詳細

setPhrase

public void setPhrase(Phrase p)
トラックにフレーズを設定する。
パラメータ:
p - フレーズ
例外:
NullPointerException - 指定された p が null の場合に発生する
java.lang.IllegalArgumentException - フレーズデータの使用トラック数が確保したトラックと合わない場合に発生する
java.lang.RuntimeException - Nativeフレーズプレイヤーに設定できなかった場合に発生する

getPhrase

public Phrase getPhrase()
トラックに設定されているフレーズを返します。
戻り値:
設定されているフレーズ

removePhrase

public void removePhrase()
フレーズ設定を削除します。
オーバーライド:
クラス com.jblend.media.smaf.phrase.PhraseTrackBase 内の removePhrase
例外:
IllegalStateException - PhrasePlayerが未生成の場合に発生する
java.lang.RuntimeException - Nativeフレーズプレイヤーから削除できなかった場合に発生する

setSubjectTo

public void setSubjectTo(PhraseTrack master)
指定されたトラックの同期スレーブとします
パラメータ:
master - マスタートラック、null が指定されたときは解除
例外:
java.lang.RuntimeException - Nativeフレーズプレイヤーが設定できなかった場合に発生する

getSyncMaster

public PhraseTrack getSyncMaster()
同期のマスタートラックを返します。
戻り値:
マスタートラック

play

public void play()
フレーズを再生します。再生中の再生は無視します。

play

public void play(int loop)
フレーズを繰り返し再生します。再生中の再生は無視します。
パラメータ:
loop - 繰り返し回数(255 回まで、0 なら無限に繰り返す)
例外:
java.lang.RuntimeException - Nativeフレーズプレイヤーが再生できなかった場合に発生する

stop

public void stop()
再生を停止します。

pause

public void pause()
再生を一時停止します。
例外:
java.lang.RuntimeException - Nativeフレーズプレイヤーが一時停止できなかった場合に発生する

resume

public void resume()
一時停止した再生を再開します。
例外:
java.lang.RuntimeException - Nativeフレーズプレイヤーが再開できなかった場合に発生する

getState

public int getState()
トラックの状態を返します。
戻り値:
状態

setVolume

public void setVolume(int value)
再生音量を設定します。
パラメータ:
value - 音量(0 : 無音、127 : 最大)

getVolume

public int getVolume()
再生音量を返します。
戻り値:
音量(0 : 無音、127 : 最大)

setPanpot

public void setPanpot(int value)
パンポット(音の定位)を設定します。
パラメータ:
value - 定位(0 : 左端、64 : 中央、127 : 右端)

getPanpot

public int getPanpot()
パンポット(音の定位)を返します。
戻り値:
定位(0 : 左端、64 : 中央、127 : 右端)

mute

public void mute(boolean mute)
再生をミュート(消音)します。
パラメータ:
mute - true ならミュート、false なら解除

isMute

public boolean isMute()
ミュートされているかどうかを判別します。
戻り値:
true:ミュートされている、false:ミュートされていない

getID

public int getID()
トラック番号を返します。
戻り値:
トラック番号

setEventListener

public void setEventListener(PhraseTrackListener l)
イベントリスナを登録します。
パラメータ:
l - イベントリスナ


Copyright 2003 Aplix Corporation. All rights reserved. Aplix Confidential and Restricted.