|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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()
メソッドのパラメータで通知されます。イベント通知として下記の場合があります。
ユーザーイベントの値とフレーズデータフォーマットの関連についての詳細は、別の仕様書に記載されます。
Javaアプリケーションが常駐型として実行されていて、音声着信、SMS着信、またはスケジュールアラーム通知が発生するとフレーズプレイヤーは停止します。このときPhraseTrackListenerのeventOccurred()
メソッドは呼び出されません。
フレーズプレイヤーが停止した後、ネイティブシステムがユーザーに着信やアラーム通知を行います。このときフレーズプレイヤーを制御しようとすると例外が発生します。これらの詳細についてResidentMIDletクラスの説明を参照してください。
フレーズ再生の開始前、または再生中に音量を設定できます。音量の設定は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
- フレーズがnullの場合に発生します。java.lang.IllegalArgumentException
- フレーズデータの使用トラック数が確保したトラックと合わない場合に発生します。java.lang.RuntimeException
- Nativeフレーズプレイヤーに設定できなかった場合に発生します。public Phrase getPhrase()
public void removePhrase()
com.jblend.media.smaf.phrase.PhraseTrackBase
内の removePhrase
IllegalStateException
- 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
- : イベントリスナ
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |