構成 | Public 型 | Public メソッド | Public 変数
クラス CriAtomExPlayerOutputAnalyzer

音声出力データ解析モジュール(プレーヤ/ソース単位) [詳細]

CriAtomExPlayerOutputAnalyzerに対する継承グラフ
CriAtomExOutputAnalyzer

すべてのメンバ一覧

構成

struct  Config
 音声出力データ解析モジュールコンフィグ構造体 [詳細]

Public 型

enum  Type { LevelMeter = 0, SpectrumAnalyzer = 1, PcmCapture = 2 }
 解析処理種別 [詳細]

Public メソッド

 CriAtomExPlayerOutputAnalyzer (Type[] types, Config[] configs=null)
 音声出力データ解析モジュールの作成
delegate void PcmCaptureCallback (float[] dataL, float[] dataR, int numChannels, int numData)
 波形取得コールバック
override void Dispose ()
 出力データ解析モジュールの破棄
bool AttachExPlayer (CriAtomExPlayer player)
 AtomExプレーヤのアタッチ
void DetachExPlayer ()
 AtomExプレーヤのデタッチ
bool AttachDspBus (string busName)
 DSPバスのアタッチ
void DetachDspBus ()
 DSPバスのデタッチ
float GetRms (int channel)
 アタッチ中の音声出力のRMSレベルの取得
void GetSpectrumLevels (ref float[] levels)
 スペクトル解析結果の取得
void GetPcmData (ref float[] data, int ch)
 アタッチ中の音声出力の波形データの取得
void SetPcmCaptureCallback (PcmCaptureCallback callback)
 波形データ取得コールバックの登録
void ExecutePcmCaptureCallback ()
 波形データ取得コールバックの実行

Public 変数

const int MaximumSpectrumBands = 512
 スペクトラムアナライザの最大バンド数

説明

音声出力データ解析モジュール(プレーヤ/ソース単位)

説明:
CriAtomSource/CriAtomExPlayerごとの音声出力の解析を行います。
レベルメータ機能などを提供します。
注意:
将来的に本クラスは廃止される予定です。CriAtomExOutputAnalyzerをご利用ください。
HCA-MXやプラットフォーム固有の音声圧縮コーデックを使用している場合は解析できません。
HCAもしくはADXコーデックをご利用ください。

列挙型

enum Type

解析処理種別

説明:
解析モジュール作成時に指定する解析処理の種別を示す値です。
参照:
CriAtomExOutputAnalyzer
列挙型の値:
LevelMeter 

レベルメーター(RMSレベル計測)

SpectrumAnalyzer 

スペクトルアナライザ

PcmCapture 

波形データ取得


コンストラクタとデストラクタ

CriAtomExPlayerOutputAnalyzer ( Type[]  types,
Config[]  configs = null 
)
inline

音声出力データ解析モジュールの作成

戻り値:
音声出力データ解析モジュール
説明:
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
bool AttachExPlayer ( CriAtomExPlayer  player)
inlineinherited

AtomExプレーヤのアタッチ

戻り値:
アタッチが成功したかどうか(成功:True、失敗:False)
説明:
出力データ解析を行うAtomExプレーヤをアタッチします。
複数のAtomExプレーヤをアタッチすることは出来ません。 アタッチ中に別のAtomExプレーヤをアタッチした場合、アタッチ中のAtomExプレーヤはデタッチされます。

CriAtomSourceをアタッチする場合、CriAtomSource::AttachToOutputAnalyzerを使用してください。
注意:
アタッチは再生開始前に行う必要があります。再生開始後のアタッチは失敗します。

本関数でアタッチしたAtomExプレーヤをデタッチする前に破棄した場合、 デタッチ時にアクセス違反が発生します。
必ず先にデタッチを行ってからAtomExプレーヤを破棄してください。
参照:
CriAtomExOutputAnalyzer::DetachExPlayer, CriAtomSource::AttachToOutputAnalyzer
void DetachExPlayer ( )
inlineinherited

AtomExプレーヤのデタッチ

説明:
出力データ解析を行うAtomExプレーヤをデタッチします。
デタッチを行うと、以降の解析処理は行われなくなります。
注意:
アタッチ済みのプレーヤが音声を再生している状態で本関数を呼び出した場合、 強制的に再生を停止した上でデタッチが行われます。

アタッチしたAtomExプレーヤが既に破棄されていた場合はアクセス違反が発生します。
必ず本関数、またはCriAtomExOutputAnalyzer::Disposeを呼び出してから、 AtomExプレーヤを破棄するようにしてください。
参照:
CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::Dispose
bool AttachDspBus ( string  busName)
inlineinherited

DSPバスのアタッチ

戻り値:
アタッチが成功したかどうか(成功:True、失敗:False)
説明:
出力データ解析を行うDSPバスをアタッチします。
複数のDSPバスをアタッチすることは出来ません。 アタッチ中に別のDSPバスをアタッチした場合、アタッチ中のDSPバスはデタッチされます。
参照:
CriAtomExOutputAnalyzer::DetachDspBus
void DetachDspBus ( )
inlineinherited

DSPバスのデタッチ

説明:
出力データ解析を行うDSPバスをデタッチします。
デタッチを行うと、以降の解析処理は行われなくなります。
参照:
CriAtomExOutputAnalyzer::AttachDspBus, CriAtomExOutputAnalyzer::Dispose
float GetRms ( int  channel)
inlineinherited

アタッチ中の音声出力のRMSレベルの取得

引数:
channelチャンネル番号
戻り値:
RMSレベル
説明:
アタッチ中の音声出力のRMSレベルを取得します。
本機能を利用する場合、ConfigのenableLevelmeterにTrueを指定してモジュールを作成してください。
参照:
CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::AttachDspBus
void GetSpectrumLevels ( ref float[]  levels)
inlineinherited

スペクトル解析結果の取得

引数:
levels解析結果(帯域毎の振幅値)
説明:
スペクトラムアナライザによって解析された帯域ごとの振幅値を取得します。
配列の要素数はモジュールの作成時に指定したバンド数です。
本機能を利用する場合、ConfigのenableSpectrumAnalyzerにTrueを、numSpectrumAnalyzerBandsに MaximumSpectrumBands以下の正数を指定してモジュールを作成してください。 解析結果を市販のスペクトルアナライザのように表示させたい場合、 本関数が返す値をデシベル値に変換する必要があります。
例:
 // 例:スペクトル解析結果を取得するコンポーネント
 public class SpectrumLevelMeter : MonoBehaviour {
  private CriAtomExOutputAnalyzer analyzer;
  void Start() {
      // 引数 config については省略。モジュールの作成時に指定したバンド数は 8 とする
      this.analyzer = new CriAtomExOutputAnalyzer(config);
      // CriAtomExPlayer のアタッチについては省略
  }

  void Update() {
      // 音声再生中の実行
      float[] levels = new float[8];
      analyzer.GetSpectrumLevels (ref levels);
      // levelsの0帯域目の振幅値をデシベル値に変換
      float db = 20.0f * Mathf.Log10(levels[0]);
      Debug.Log (db);
  }
 }
参照:
CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::AttachDspBus
void GetPcmData ( ref float[]  data,
int  ch 
)
inlineinherited

アタッチ中の音声出力の波形データの取得

引数:
data出力データ
chチャンネル
説明:
アタッチ中の音声出力の波形データを取得します。
本機能を利用する場合、ConfigのenablePcmCaptureにTrueを、numCapturedPcmSamplesに 正数を指定してモジュールを作成してください。
注意:
引数の配列の長さが十分でない場合、関数内で配列の確保が行われます。
不要なGCの発生を避けるため、初期化コンフィグで指定したデータサンプル数以上の 長さの配列を引数に渡すようにしてください。 現状、取得可能なチャンネルはL/Rのみです。chには0か1を指定してください。
参照:
CriAtomExOutputAnalyzer::AttachExPlayer, CriAtomExOutputAnalyzer::AttachDspBus
void SetPcmCaptureCallback ( PcmCaptureCallback  callback)
inlineinherited

波形データ取得コールバックの登録

説明:
出力データ取得用のコールバックを登録します。
コールバックによる波形データ取得を利用する場合、ExecutePcmCaptureCallbackの呼び出し前に 本関数によりコールバックの登録を行ってください。
void ExecutePcmCaptureCallback ( )
inlineinherited

波形データ取得コールバックの実行

説明:
出力データ取得用のコールバックを実効します。
本関数を呼び出すと、最後の実行時からの出力差分データを引数とするコールバックが 複数回呼び出されます。
注意:
コールバックによる波形データ取得を利用する場合、本関数を定期的に呼び出してください。
本関数が長時間呼び出されなかった場合、取得可能な波形データに欠落が生じます。

変数

const int MaximumSpectrumBands = 512
inherited

スペクトラムアナライザの最大バンド数

説明:
スペクトラムアナライザが出力できるバンド数の最大値です。

CRI Middleware logo Copyright (c) 2012 CRI Middleware Co., Ltd. CRIWARE Unity Plug-inマニュアル 2021-02-05 更新