|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Object | +--com.nttdocomo.ui.AudioPresenter
音声のメディアデータの、再生オブジェクトを定義します。 メディア再生 クラスは、音を出すメディアデータを再生するためのプレゼンタです。 リスナーを登録することによって、演奏の状態の通知を受けることができます。
端末で再生できないようなメディアデータをセットした場合の振舞は機種依存で、 UIExceptionが発生する場合があります。
属性の設定は setAttribute メソッドを使用します。
setData メソッドと setSound メソッドは、1つのプレゼンタオブジェクトに対して排他的に使用します。
setData メソッドでメディアデータを設定してから setSound メソッドでサウンドデータを
設定したり、その逆をしたりすることはできません。
同じメソッドを複数回呼出した場合は、最後に設定したデータが有効になります。
[DoJa-3.0]
DoJa-3.0では上記の排他使用の制限はありません。
いずれかのメソッドにより最後に設定されたデータが有効になります。
ミニマムスペック:
[DoJa-3.0]
[DoJa-3.0]
[DoJa-2.0]
再生中にアプリケーションがサスペンドした場合、再生は停止します。
すなわち、stop メソッドが呼ばれたのと同じ状態になります。
ミニマムスペックでは、2つのAudioPresenterの同時(並列)再生をサポートします。
[DoJa-3.0]
ポート指定の概念が導入されています。
ポート指定が行われているAudioPresenterと、
ポート指定が行われていないAudioPresenterは同時には再生されず、
優先順位に関係なく後から再生を指示されたほうが優先されます。
例えば、
ポート指定が行われているAudioPresenterを再生中に
ポート指定が行われていないAudioPresenterの再生を指示すると、
再生に成功しなくとも、
再生中のAudioPresenterは優先順位に関係なく停止します。
PhoneSystemクラスのplaySoundメソッドが呼び出された場合、
ポート指定がなくMAX_PRIORITYが指定された
AudioPresenterの再生が指示されたように振舞います。
同時再生可能な範囲内で複数のAudioPresenterが再生されている場合、
すべてのAudioPresenterの音が聞こえます。
ただし、同時発音可能な発音数やチャンネル数を超えている場合には、
すべての音が聞こえるとは限りません。
どの音が聞こえるかは機種依存です。
同時再生可能なAudioPresenterの数を超えた場合、
高優先順位のAudioPresenterが優先され、
同じ優先順位の場合には後から再生を指示された方が優先されます。
すなわち、同時再生可能な最大数のAudioPresenterが再生されているときに
新たなAudioPresenterの再生が指示されると、
その優先順位が再生中の最低優先順位のAudioPresenterの優先順位と同じ
あるいはそれ以上の場合、
再生中の最低優先順位のAudioPresenterは停止(stop)させられ、
新しいAudioPresenterが再生されます。
再生中の最低優先順位のAudioPresenterが複数あった場合、
どのAudioPresenterが停止させられるかは機種依存です。
新しいAudioPresenterが再生中のどのAudioPresenterの優先順位よりも低い場合、
AudioPresenterは再生されません
(例外はスローされず、イベントも一切発生しません)。
例えば同時再生可能数が 2 であり、
優先順位が 1 と 2のAudioPresenter ap1、ap2が再生中に
優先順位 1 のAudioPresenter ap3を再生しようとした場合、
ap1は停止し、ap3が再生されます。
また、同時再生可能数が 2 であり、
優先順位が 1 の2つのAudioPresenter ap1、ap2が再生中に
優先順位 1 のAudioPresenter ap3を再生しようとした場合、
ap3 が再生されますが、
ap1とap2のどちらが停止するかは機種依存です。
さらに、同時再生可能数が 2 であり、
優先順位が 2 の2つのAudioPresenter ap1、ap2が再生中に
優先順位 1 のAudioPresenter ap3を再生しようとした場合、
ap3 の再生要求は無視されます。
ポートは、
1つのAudioPresenterを再生可能な物理的な再生器をイメージさせるものです。
(実際にポートに対応する物理的な再生器が存在するとは限りません。)
ポートは、同時再生可能なAudioPresenterと同じ数だけあります。
2つのAudioPresenterが再生可能である場合、
ポート番号として0〜1が使用できます。
複数のポートでAudioPresenterが再生されている場合、
すべてのAudioPresenterの音が聞こえます。
ただし、同時発音可能な発音数やチャンネル数を超えている場合には
すべての音が聞こえるとは限りません。
どの音が聞こえるかは機種依存です。
ポート指定がある場合の優先順位は、
同じポートのAudioPresenterに対してのみ有効であることを除き、
ポート指定がない場合と同様です。
AudioPresenterの状態管理においては、
一時停止中も再生中と同じ状態であると判断されます。
例えば、同時再生数の管理においては、
一時停止中のAudioPresenterも再生中として扱われます。
また、例えば再生中にサスペンドが発生したり、
stopメソッドが呼ばれた場合には停止しますが、
一時停止中でも同じです。
[DoJa-3.5]
FOMA 端末で SMF の再生と MFi の再生の両方をサポートしている場合であっても、
SMF と MFi の同時再生が可能かどうかは機種依存です。
同時再生が不可能な場合は、後から再生しようとしたものについて
play() メソッドが呼ばれた時に
「端末がサポートしている以上のリソースを使用する」
という理由により UIException(BUSY_RESOURCE) が発生します。
MediaSound
,
MediaData
,
MediaListener
フィールドの概要 | |
static int |
ATTR_SYNC_OFF
同期イベントの属性値で、同期イベントを発生させないことを表します(=0)。 |
static int |
ATTR_SYNC_ON
同期イベントの属性値で、同期イベントを発生させることを表します(=1)。 |
static int |
AUDIO_COMPLETE
演奏が終了したことを示すイベントタイプです (=3)。 |
static int |
AUDIO_PAUSED
演奏が一時停止したことを示すイベントタイプです(=5)。 |
static int |
AUDIO_PLAYING
演奏が開始されたことを示すイベントタイプです (=1)。 |
static int |
AUDIO_RESTARTED
演奏が再開したことを示すイベントタイプです(=6)。 |
static int |
AUDIO_STOPPED
演奏が中断されたことを示すイベントタイプです (=2)。 |
static int |
AUDIO_SYNC
曲データの同期イベントを示すイベントタイプです(=4)。 |
static int |
CHANGE_TEMPO
メディア再生時のテンポを示す属性です (=5)。 |
static int |
MAX_OPTION_ATTR
オプションのオーディオ属性の最大値 (=255)。 |
static int |
MAX_PRIORITY
優先順位の属性値で、最も高い優先順位を表します (=10)。 |
protected static int |
MAX_VENDOR_ATTR
ベンダ定義属性の種類の最大値(=127)。 |
protected static int |
MAX_VENDOR_AUDIO_EVENT
ベンダ定義のイベントの最大値(=127)。 |
static int |
MIN_OPTION_ATTR
オプションのオーディオ属性の最小値 (=128)。 |
static int |
MIN_PRIORITY
優先順位の属性値で、最も低い優先順位を表します (=1)。 |
protected static int |
MIN_VENDOR_ATTR
ベンダ定義属性の種類の最少値(=64)。 |
protected static int |
MIN_VENDOR_AUDIO_EVENT
ベンダ定義のイベントの最少値(=64)。 |
static int |
NORM_PRIORITY
優先順位の属性値で、通常の優先順位を表します (=5)。 |
static int |
PRIORITY
メディアデータの再生の優先順位を示す属性です(=1)。 |
static int |
SET_VOLUME
ボリュームを示す属性です(=4)。 |
static int |
SYNC_MODE
メディアデータの再生と同期してイベントを発生させるかどうかを示す 属性です(=2)。 |
static int |
TRANSPOSE_KEY
メディア再生時の音程の変化を示す属性です(=3)。 |
コンストラクタの概要 | |
protected |
AudioPresenter()
アプリケーションが直接このクラスのインスタンスを生成することはできません。 |
メソッドの概要 | |
static AudioPresenter |
getAudioPresenter()
オーディオ再生オブジェクトを取得します。 |
static AudioPresenter |
getAudioPresenter(int port)
再生するポート番号を指定してオーディオ再生オブジェクトを取得します。 |
int |
getCurrentTime()
曲頭からの演奏時間をms単位で返します。 |
MediaResource |
getMediaResource()
現在セットされているメディアリソースを取得します。 |
void |
pause()
メディアデータの再生を一時停止します。 |
void |
play()
メディアデータの再生を開始します。 |
void |
play(int time)
メディアデータの特定の位置からの再生を開始します。 |
void |
restart()
メディアデータの再生を再開します。 |
void |
setAttribute(int attr,
int value)
再生方法に関する属性値を設定します。 |
void |
setData(MediaData data)
メディアデータをセットします。 |
void |
setMediaListener(MediaListener listener)
リスナを登録します。 |
void |
setSound(MediaSound sound)
メディアサウンドをセットします。 |
void |
setSyncEvent(int channel,
int key)
チャンネルとキーに対応するノートメッセージを同期イベントとして設定します。 |
void |
stop()
メディアデータの再生を停止します。 |
クラス Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final int PRIORITY
NORM_PRIORITY
です。
[DoJa-3.0]
優先順位に基づく再生制御についてはクラス説明を参照してください。
[DoJa-2.0]
端末によってはサポートされない場合があります。
setAttribute(int, int)
の引数に指定された場合、未サポート端末では、その設定は無視されます。
[DoJa-3.0]
再生中に設定した場合、設定は無視されます。
次回以降の再生にも反映されません。
public static final int MIN_PRIORITY
public static final int NORM_PRIORITY
public static final int MAX_PRIORITY
public static final int SYNC_MODE
[DoJa-2.0]
setAttribute(int, int)
の引数に指定された場合、未サポート端末では、その設定は無視されます。
public static final int ATTR_SYNC_OFF
public static final int ATTR_SYNC_ON
public static final int TRANSPOSE_KEY
再生開始後に設定した場合はその時点から音程が変化します。
public static final int SET_VOLUME
setAttribute(int, int)
メソッドにおいて
0〜100以外の値を設定しようとした場合、
IllegalArgumentExceptionが発生します。
再生開始後に設定した場合はその時点からボリュームが変化します。
public static final int CHANGE_TEMPO
ミニマムスペックでは25から400の値が指定できますが、 変化後のテンポが再生可能なテンポの範囲を超えた場合、 その上限または下限のテンポで再生されます。
再生開始後に設定した場合はその時点からテンポが変化します。
protected static final int MIN_VENDOR_ATTR
protected static final int MAX_VENDOR_ATTR
public static final int AUDIO_PLAYING
public static final int AUDIO_STOPPED
public static final int AUDIO_COMPLETE
public static final int AUDIO_SYNC
[DoJa-2.0]
端末によってはサポートされない場合があります。
public static final int AUDIO_PAUSED
[DoJa-2.0]
端末によってはサポートされない場合があります。
public static final int AUDIO_RESTARTED
[DoJa-2.0]
端末によってはサポートされない場合があります。
protected static final int MIN_VENDOR_AUDIO_EVENT
protected static final int MAX_VENDOR_AUDIO_EVENT
public static final int MIN_OPTION_ATTR
public static final int MAX_OPTION_ATTR
コンストラクタの詳細 |
protected AudioPresenter()
メソッドの詳細 |
public static AudioPresenter getAudioPresenter()
UIException
- [DoJa-1.0] オーディオ再生のためのリソースが確保できない場合に発生します(NO_RESOURCES または BUSY_RESOURCE)。
public static AudioPresenter getAudioPresenter(int port)
port
- ポート番号を指定します。
0〜(同時再生可能数-1)のポート番号が指定できます。
IllegalArgumentException
- 引数 port に負数や、同時再生可能数以上の値を指定した場合に発生します。
public void setSound(MediaSound sound)
sound
- メディアサウンドを指定します。
UIException
- 再生中にこのメソッドを呼び出そうとした場合に発生します(ILLEGAL_STATE)。
NullPointerException
- 引数 sound に null が指定された場合に発生します。
UIException
- システムが提供している以外のメディアサウンド
(MediaSound
インタフェースを実装した未知のクラスのオブジェクト)
が指定された場合に発生します(UNSUPPORTED_FORMAT)。
UIException
- セットされたメディアサウンドがuse()されていない場合に発生します(ILLEGAL_STATE)。
UIException
- 引数 sound に端末が再生できないようなメディアサウンドが指定された場合に発生します(UNSUPPORTED_FORMAT)。
public void setData(MediaData data)
MediaPresenter
内の setData
data
- メディアデータを指定します。
UnsupportedOperationException
- 端末がこのメソッドをサポートしていない場合に発生します。
UIException
- 再生中にこのメソッドを呼び出そうとした場合に発生します(ILLEGAL_STATE)。
NullPointerException
- 引数 data に null が指定された場合に発生します。
UIException
- 引数 data にシステムが提供している以外のメディアデータ
(MediaData
インタフェースを実装した未知のクラスのオブジェクト)
が指定された場合に発生します(UNSUPPORTED_FORMAT)。
UIException
- [DoJa-3.0]セットされたメディアデータがuse()されていない場合に発生します(ILLEGAL_STATE)。
public MediaResource getMediaResource()
MediaPresenter
内の getMediaResource
public void play()
AUDIO_PLAYING
でリスナが起動されます。
データを最後まで再生したら自動的に停止します。停止したとき、
リスナが登録されていた場合、イベントタイプAUDIO_COMPLETE
でリスナが
起動されます。
再生中に play メソッドが呼ばれた場合は、再生を停止して再び先頭から再生を開始します。
MediaPresenter
内の play
UIException
- [DoJa-2.0] メディアデータがセットされていない場合に発生します(ILLEGAL_STATE)。
UIException
- [DoJa-2.0] メディアデータがuse()されていない場合に発生します(ILLEGAL_STATE)。
UIException
- [DoJa-2.0]端末がサポートしている以上のリソースを使用する場合に発生します(BUSY_RESOURCE)
UIException
- [DoJa-2.0]オーディオ再生のためのリソースが確保できない場合に発生します(NO_RESOURCES)
UIException
- ネイティブ側で再生開始に失敗した場合に発生します(ILLEGAL_STATE)。
UIException
- [DoJa-2.1] 通話中に呼び出された場合に発生します(BUSY_RESOURCE)。
public void play(int time)
AUDIO_PLAYING
でリスナが起動されます。
データを最後まで再生したら自動的に停止します。
停止したとき、リスナが登録されていた場合、イベントタイプ
AUDIO_COMPLETE
でリスナが 起動されます。
再生中に play メソッドが呼ばれた場合は、
再生を停止して再び特定の位置から再生を開始します。
[DoJa-2.0]
[DoJa-3.0]
本来のテンポで一時停止や停止せずに曲頭から再生した場合に
指定した経過時間がかかるポイントから再生を開始します。
メディアデータの本来のテンポでの再生時間の長さ以上の値を
引数 time に指定した時にリスナが登録されていた場合、
イベントタイプAUDIO_PLAYING
でリスナが起動された後、
イベントタイプAUDIO_COMPLETE
でリスナが起動されます。
time
- 再生を開始する位置をメディアデータの先頭からのミリ秒で指定します。
UIException
- メディアデータがセットされていない場合に発生します(ILLEGAL_STATE)。
IllegalArgumentException
- [DoJa-3.0] 引数 time に 0 未満の値が指定された場合に発生します。
UIException
- メディアデータがuse()されていない場合に発生します(ILLEGAL_STATE)。
UIException
- 端末がサポートしている以上のリソースを使用する場合に発生します(BUSY_RESOURCE)。
UIException
- オーディオ再生のためのリソースが確保できない場合に発生します(NO_RESOURCES)。
UIException
- ネイティブ側で再生開始に失敗した場合に発生します(ILLEGAL_STATE)。
UIException
- [DoJa-2.1] 通話中に呼び出された場合に発生します(BUSY_RESOURCE)。
public void stop()
AUDIO_STOPPED
でリスナが起動されます。
停止しているときにstopメソッドが呼ばれた場合、なにもしません。
MediaPresenter
内の stop
UIException
- [DoJa-2.0] メディアデータがセットされていない場合に発生します(ILLEGAL_STATE)。
UIException
- [DoJa-2.0] メディアデータがuse()されていない場合に発生します(ILLEGAL_STATE)。
public void pause()
AUDIO_PAUSED
でリスナが起動されます。
再生を再開するには restart()
メソッドを使用します。
停止しているときにpauseメソッドが呼ばれた場合、なにもしません。
[DoJa-2.0]
UIException
- メディアデータがセットされていない場合に発生します(ILLEGAL_STATE)。
UIException
- メディアデータがuse()されていない場合に発生します(ILLEGAL_STATE)。
public void restart()
AUDIO_RESTARTED
でリスナが起動されます。
再生が pause()
メソッドによって一時停止されている時以外は
なにもしません。
[DoJa-2.0]
UIException
- メディアデータがセットされていない場合に発生します(ILLEGAL_STATE)。
UIException
- メディアデータがuse()されていない場合に発生します(ILLEGAL_STATE)。
UIException
- 端末がサポートしている以上のリソースを使用する場合に発生します(BUSY_RESOURCE)。
UIException
- オーディオ再生のためのリソースが確保できない場合に発生します(NO_RESOURCES)。
UIException
- ネイティブ側で再生再開に失敗した場合に発生します(ILLEGAL_STATE)。
public int getCurrentTime()
[DoJa-3.0]
メソッドが呼ばれた時点で再生しているポイントの
メディアサウンドの曲頭からの時間を返します。
すなわち、本来のテンポで一時停止や停止せずに再生した場合に
曲頭からそのポイントに到達するまでにかかる経過時間を返します。
UIException
-
[DoJa-3.0] メディアデータがセットされていない場合に発生します
(ILLEGAL_STATE)。
UIException
-
[DoJa-3.0] メディアデータがuse()されていない場合に発生します
(ILLEGAL_STATE)。
public void setAttribute(int attr, int value)
MediaPresenter
内の setAttribute
attr
- 設定する属性を指定します。value
- 設定する属性の値を指定します。
IllegalArgumentException
- [DoJa-2.0] 引数 attr で指定された有効な属性に対して、引数 value に不正な値が指定された場合に発生します。
public void setSyncEvent(int channel, int key)
setAttribute(int, int)
メソッドで SYNC_MODE を ATTR_SYNC_ON に設定することにより、
設定されたノートメッセージに対応する音が鳴るのと同時にイベントタイプAUDIO_SYNC
でリスナが起動される様になります。
AUDIO_SYNCイベントの精度は100ms以下とし、その精度以内で次のAUDIO_SYNCイベントが発生した場合、
そのAUDIO_SYNCイベントは破棄されます。
端末でサポートする範囲外のチャンネルやキーが指定された場合は何も行わずに無視されます。
プレゼンタに登録できる同期イベントは1つだけです。
このメソッドを複数回呼出した場合、最後に設定した同期イベントだけが有効です。
[DoJa-2.0]
端末によってはサポートされない場合があります。
サポートされない場合、本メソッドの呼び出しは無視されます。
[DoJa-3.0]
再生中にこのメソッドを呼び出した場合、設定は無視されます。
次回以降の再生にも反映されません。
引数の値のチェックは行われません。
有効な値が指定されない場合、同期イベントは発生しません。
TRANSPOSE_KEYによる音程変更の影響を受けません。
channel
- 同期イベントに利用するチャンネルを指定します。key
- 同期イベントに利用するキーを指定します。端末がサポートするMFiの有効キー範囲は21〜119(MFiのデータとしては−24〜74)、MIDIの有効キー範囲は0〜127です。public void setMediaListener(MediaListener listener)
MediaPresenter
内の setMediaListener
listener
- 登録するリスナを指定します。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
NTT DoCoMo,Inc.
本製品または文書は著作権法により保護されており、その使用、複製、再頒布および逆コンパイルを制限するライセンスのもとにおいて頒布されます。NTTドコモ(その他に許諾者がある場合は当該許諾者も含めて)の書面による事前の許可なく、本製品および関連する文書のいかなる部分も、いかなる方法によっても複製することが禁じられます。フォントを含む第三者のソフトウェアは、著作権法により保護されており、その提供者からライセンスを受けているものです。
Sun、Sun Microsystems、Java、J2MEおよびJ2SEは、米国およびその他の国における米国 Sun Microsystems,Inc.の商標または登録商標です。サンのロゴマークは、米国 Sun Microsystems, Inc.の登録商標です。
「iモード」、「iアプリ/アイアプリ」、「i-αppli」ロゴ、「DoJa」はNTTドコモの商標または登録商標です。