音声出力データ解析モジュール(プレーヤ/ソース単位)
[詳解]
音声出力データ解析モジュール(プレーヤ/ソース単位)
- 非推奨:
- 削除予定の非推奨APIです。 CriWare.CriAtomExOutputAnalyzer クラスの使用を検討してください。
- 説明:
- CriAtomSource/CriAtomExPlayerごとの音声出力の解析を行います。
レベルメータ機能などを提供します。
- 注意:
- 将来的に本クラスは廃止される予定です。 CriWare.CriAtomExOutputAnalyzer をご利用ください。
HCA-MXやプラットフォーム固有の音声圧縮コーデックを使用している場合は解析できません。
HCAもしくはADXコーデックをご利用ください。
解析処理種別
- 説明:
- 解析モジュール作成時に指定する解析処理の種別を示す値です。
- 参照
- CriAtomExOutputAnalyzer
列挙値 |
---|
LevelMeter |
レベルメーター(RMSレベル計測)
|
SpectrumAnalyzer |
スペクトルアナライザ
|
PcmCapture |
波形データ取得
|
音声出力データ解析モジュールの作成
- 戻り値
- 音声出力データ解析モジュール
- 説明:
- CriAtomSource/CriAtomExPlayerの出力音声データの解析モジュールを作成します。
作成した解析モジュールは、CriAtomSourceまたはCriAtomExPlayerにアタッチして使用します。
アタッチしている音声出力に対し、レベルメータなどの解析を行います。
- 備考:
- 解析モジュールにアタッチ可能なCriAtomSource/CriAtomExPlayerは一つのみです。
解析モジュールを使いまわす場合は、デタッチを行ってください。
- 注意:
- 将来的に本クラスは廃止される予定です。CriAtomExOutputAnalyzerをご利用ください。
音声出力データ解析モジュールの作成時には、アンマネージドなリソースが確保されます。
解析モジュールが不要になった際は、必ず CriAtomExPlayerOutputAnalyzer.Dispose メソッドを呼んでください。
delegate void PcmCaptureCallback |
( |
float[] |
dataL, |
|
|
float[] |
dataR, |
|
|
int |
numChannels, |
|
|
int |
numData |
|
) |
| |
|
inherited |
波形取得コールバック
- 説明:
- 出力される波形データを取得するためのコールバックです。
override void Dispose |
( |
| ) |
|
|
inlineinherited |
出力データ解析モジュールの破棄
- 説明:
- 出力データ解析モジュールを破棄します。
本関数を実行した時点で、出力データ解析モジュール作成時にプラグイン内で確保されたリソースが全て解放されます。
メモリリークを防ぐため、出力データ解析モジュールが不要になった時点で本メソッドを呼び出してください。
- 注意:
- 本関数は完了復帰型の関数です。
アタッチ済みのAtomExプレーヤがある場合、本関数内でデタッチが行われます。
対象のAtomExプレーヤが再生中の音声は強制的に停止しますのでご注意ください。
- 参照
- CriAtomExOutputAnalyzer::CriAtomExOutputAnalyzer
AtomExプレーヤのアタッチ
- 戻り値
- アタッチが成功したかどうか(成功:True、失敗:False)
- 説明:
- 出力データ解析を行うAtomExプレーヤをアタッチします。
複数のAtomExプレーヤをアタッチすることは出来ません。 アタッチ中に別のAtomExプレーヤをアタッチした場合、アタッチ中のAtomExプレーヤはデタッチされます。
CriAtomSourceをアタッチする場合、CriAtomSource::AttachToOutputAnalyzerを使用してください。
- 注意:
- アタッチは再生開始前に行う必要があります。再生開始後のアタッチは失敗します。
本関数でアタッチしたAtomExプレーヤをデタッチする前に破棄した場合、 デタッチ時にアクセス違反が発生します。
必ず先にデタッチを行ってからAtomExプレーヤを破棄してください。
- 参照
- CriAtomExOutputAnalyzer::DetachExPlayer, CriAtomSource::AttachToOutputAnalyzer
bool AttachDspBus |
( |
string |
busName | ) |
|
|
inlineinherited |
float GetRms |
( |
int |
channel | ) |
|
|
inlineinherited |
void GetSpectrumLevels |
( |
ref float[] |
levels | ) |
|
|
inlineinherited |
スペクトル解析結果の取得
- 引数
-
- 説明:
- スペクトラムアナライザによって解析された帯域ごとの振幅値を取得します。
配列の要素数はモジュールの作成時に指定したバンド数です。
本機能を利用する場合、ConfigのenableSpectrumAnalyzerにTrueを、numSpectrumAnalyzerBandsに MaximumSpectrumBands以下の正数を指定してモジュールを作成してください。 解析結果を市販のスペクトルアナライザのように表示させたい場合、 本関数が返す値をデシベル値に変換する必要があります。
- 例:
public class SpectrumLevelMeter : MonoBehaviour {
private CriAtomExOutputAnalyzer analyzer;
void Start() {
this.analyzer = new CriAtomExOutputAnalyzer(config);
}
void Update() {
float[] levels = new float[8];
analyzer.GetSpectrumLevels (ref levels);
float db = 20.0f * Mathf.Log10(levels[0]);
Debug.Log (db);
}
}
- 参照
- CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::AttachDspBus
void GetPcmData |
( |
ref float[] |
data, |
|
|
int |
ch |
|
) |
| |
|
inlineinherited |
波形データ取得コールバックの登録
- 説明:
- 出力データ取得用のコールバックを登録します。
コールバックによる波形データ取得を利用する場合、ExecutePcmCaptureCallbackの呼び出し前に 本関数によりコールバックの登録を行ってください。
void ExecutePcmCaptureCallback |
( |
| ) |
|
|
inlineinherited |
波形データ取得コールバックの実行
- 説明:
- 出力データ取得用のコールバックを実効します。
本関数を呼び出すと、最後の実行時からの出力差分データを引数とするコールバックが 複数回呼び出されます。
- 注意:
- コールバックによる波形データ取得を利用する場合、本関数を定期的に呼び出してください。
本関数が長時間呼び出されなかった場合、取得可能な波形データに欠落が生じます。
const int MaximumSpectrumBands = 512 |
|
inherited |
スペクトラムアナライザの最大バンド数
- 説明:
- スペクトラムアナライザが出力できるバンド数の最大値です。
このクラス詳解は次のファイルから抽出されました:
- CriAtomExPlayerOutputAnalyzer.cs