|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--com.j_phone.io.PitchScanData
外部音声入力から入力された音声をスキャンして得た周波数と音量の情報を保持するクラスです。
MicControl
を利用して外部音声入力からの入力を受け付ける際に
MicControl
のstartPitchScan(PitchScanData)
メソッドを呼び出すことで、
入力されている音声の周波数と音量をリアルタイムに検出することができます。
この検出結果を保持するためのクラスがPitchScanData
です。
外部音声入力に入力された音声から検出される周波数と音量は以下のようになります。
MicControl
のgetScanInterval()
メソッドで取得することができます。
前述したように、PitchScanData
クラスのインスタンスは、検出した周波数と音量を配列に格納しますが、
この配列の長さは、PitchScanData
のコンストラクタで指定します。
指定した長さの検出データを格納した時点でピッチ検出の停止要求が行われていない場合は、
自動的にピッチ検出が停止され、その旨がMicControlListener
に通知されます。
// 検出間隔を得る int interval = MicControl.getScanInterval(); // 5分ぶんの検出データを格納するのに必要な要素数を計算 int index = (5*60*1000)/interval; // 検出データを格納するための PitchScanData インスタンスを生成 PitchScanData scandata = new PitchScanData( index );
コンストラクタの概要 | |
PitchScanData(int size)
検出する周波数と音量のデータを、指定した要素数だけ保持できるPitchScanData インスタンスを返します。 |
メソッドの概要 | |
int |
getCurrentIndex()
検出済みの周波数と音量のインデックスを取得します。 |
int[] |
getPitch(int offset,
int size)
検出した音程(周波数 1/16Hz単位)を取得します。 |
int[] |
getVoice(int offset,
int size)
検出した声量(0 〜 31 の32段階)を取得します。 |
クラス java.lang.Object から継承したメソッド |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public PitchScanData(int size)
size
- 周波数と音量のデータを保持する配列のサイズjava.lang.IllegalArgumentException
- 不正な引数が指定された場合に発生するメソッドの詳細 |
public int[] getPitch(int offset, int size)
音程は1/16Hz単位になります。
例:
エラー内容 | 値 | 詳細 |
---|---|---|
周波数上限エラー | -1 | 音程が検出上限を超えたため周波数検出が出来なかった事を示します。本エラーの検出可否は機器に依存します。 |
周波数下限エラー | -2 | 音程が検出下限を超えたため周波数検出が出来なかった事を示します。本エラーの検出可否は機器に依存します。 |
その他 | -3 | 音程の検出エラー発生を示します。上限、下限エラーが検出できない機器は本エラーとなります。 |
offset
- 取得する周波数配列のオフセットsize
- 配列のサイズjava.lang.IllegalArgumentException
- 不正な引数が指定された場合に発生するArrayIndexOutOfBoundsException
- 引数 offset + size が PitchScanData のサイズを超えている場合に発生するpublic int[] getVoice(int offset, int size)
未検出インデックス値は 0 になります。 検出エラー時は -1 になります。
offset
- 取得する周波数配列のオフセットsize
- 配列のサイズjava.lang.IllegalArgumentException
- 不正な引数が指定された場合に発生するArrayIndexOutOfBoundsException
- 引数 offset + size が PitchScanData のサイズを超えている場合に発生するpublic int getCurrentIndex()
現在、何番目の要素まで周波数と音量の検出が完了しているかを返します。
未検出の場合は -1 が返ります。
MicControl
のstopPitchScan()
メソッドが呼び出されて検出を停止した場合は、
最後に検出を行った要素のインデックスを返します。
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |