Class CriAtomMic
マイクハンドル
Implements
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public class CriAtomMic : IDisposable
Remarks
説明: CriAtomMic は、外部音声の収録用に作られたマイクを操作するためのオブジェクトです。 CriAtomMic(in Config) 関数等でマイクを作成すると、 関数はマイク操作用に、この"Atomマイクオブジェクト"を返します。 入力の開始、ステータスの取得、レコーダのセット等、マイクに対して行う操作は、 全てAtomマイクオブジェクトを介して実行されます。
Constructors
CriAtomMic()
デフォルト設定でのインスタンス作成
Declaration
public CriAtomMic()
CriAtomMic(in Config)
マイクの作成
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMic.Config | config | マイク作成用コンフィグ構造体 |
Remarks
説明: 音声入力用のマイクを作成します。 CriAtomMic(in Config) 関数を実行すると、Atomマイクが作成され、 マイクを制御するためのオブジェクト( CriAtomMic )が返されます。 音声入力の開始、ステータスの取得等、Atomマイクに対して 行う操作は、全てオブジェクトに対して行います。 実際に音声入力を開始するにはStart() 関数を実行します。 入力された音声データはReadData(float[][], uint) 関数で取得します。 マイクを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ワーク領域を確保する方法には、以下の2通りの方法があります。 (a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。 (b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。
注意: 本関数は完了復帰型の関数です。実行にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 マイクの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
Fields
DefaultDeviceId
Declaration
public static readonly NativeString DefaultDeviceId
Field Value
| Type | Description |
|---|---|
| NativeString |
Properties
DeviceDisconnectedCallback
コールバックイベントオブジェクト
Declaration
public CriAtomMic.DeviceDisconnectedCbFunc DeviceDisconnectedCallback { get; }
Property Value
| Type | Description |
|---|---|
| CriAtomMic.DeviceDisconnectedCbFunc |
See Also
NativeHandle
ネイティブハンドル
Declaration
public NativeHandleIntPtr NativeHandle { get; }
Property Value
| Type | Description |
|---|---|
| NativeHandleIntPtr |
Methods
AttachEffect(IntPtr, in float, uint)
Proエフェクトの追加
Declaration
public CriAtomMicEffect AttachEffect(IntPtr afxInterface, in float configParameters, uint numConfigParameters)
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | afxInterface | CriAfxインターフェース |
| float | configParameters | CriAfx作成用コンフィグパラメーター配列 |
| uint | numConfigParameters | CriAfx作成用コンフィグパラメーターの数 |
Returns
| Type | Description |
|---|---|
| CriAtomMicEffect | CriAtomMicEffect マイクエフェクトオブジェクト |
Remarks
説明: マイクにエフェクトを追加します。 追加するエフェクトはCriAfxインターフェースで作成されている必要があります。 マイクを作成する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ワーク領域を確保する方法には、以下の2通りの方法があります。 (a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。 (b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。 マイク動作中に本関数を実行するとエフェクト処理が急に行われるようになるため 音にノイズが入る可能性があります。
CalculateWorkSize(in Config)
Proマイクのワーク領域サイズ計算
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMic.Config | config | マイク作成用コンフィグ構造体 |
Returns
| Type | Description |
|---|---|
| int |
Remarks
説明: マイクの作成に必要なワーク領域のサイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケータ登録を行わずに CriAtomMic(in Config) 関数でマイクを作成する場合、 本関数で計算したサイズ分のメモリをワーク領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
See Also
CalculateWorkSizeForEffect(IntPtr, in float, uint)
Proエフェクトの追加に必要なワークサイズの計算
Declaration
public int CalculateWorkSizeForEffect(IntPtr afxInterface, in float configParameters, uint numConfigParameters)
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | afxInterface | CriAfxインターフェース |
| float | configParameters | CriAfx作成用コンフィグパラメーター配列 |
| uint | numConfigParameters | CriAfx作成用コンフィグパラメーターの数 |
Returns
| Type | Description |
|---|---|
| int | CriSint32 ワークメモリのサイズ |
Remarks
説明: マイクへのエフェクトの追加に必要なワークサイズを計算します。 追加するエフェクトはCriAfxインターフェースで作成されている必要があります。
DetachEffect(CriAtomMicEffect)
Proエフェクトの削除
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMicEffect | effect | エフェクトハンドル |
Remarks
説明: マイクのエフェクトを削除します。 マイク動作中に本関数を実行するとエフェクト処理が急に行われなくなるため 音にノイズが入る可能性があります。
See Also
Dispose()
Proマイクの破棄
Declaration
Remarks
説明: 音声入力用のマイクを破棄します。
注意: 本関数は完了復帰型の関数です。実行にかかる時間は、プラットフォームによって異なります。 ゲームループ等の画面更新が必要なタイミングで本関数を実行するとミリ秒単位で 処理がブロックされ、フレーム落ちが発生する恐れがあります。 マイクの作成/破棄は、シーンの切り替わり等、負荷変動を許容できる タイミングで行うようお願いいたします。
See Also
FinalizeMic()
Proマイクライブラリの終了処理
Declaration
Remarks
説明: マイクライブラリの終了処理を行います。
GetCurrentDeviceId()
Pro録音中デバイスIDの取得
Declaration
Returns
| Type | Description |
|---|---|
| NativeString | const CriChar8* デバイスID |
Remarks
説明: 現在録音に使用されているデバイスのデバイスIDを取得します。
See Also
GetDefaultDevice(out DeviceInfo)
Proデフォルトマイクデバイスの取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMic.DeviceInfo | info | マイクデバイス情報 |
Returns
| Type | Description |
|---|---|
| bool | CriBool true:成功, false:失敗 |
Remarks
説明: デフォルト設定されたマイクデバイスの情報を取得します。
GetDevice(int, out DeviceInfo)
Proマイクデバイスの取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| int | index | マイクデバイスのインデックス |
| CriAtomMic.DeviceInfo | info | マイクデバイス情報 |
Returns
| Type | Description |
|---|---|
| bool | CriBool true:成功, false:失敗 |
Remarks
説明: マイクデバイスの情報を取得します。
See Also
GetDeviceId()
Pro指定中のデバイスIDの取得
Declaration
Returns
| Type | Description |
|---|---|
| NativeString | const CriChar8* デバイスID |
Remarks
説明: SetDeviceId(ArgString) で設定したデバイスID情報を取得します。 現在録音に使用されているデバイスIDを取得する場合は GetCurrentDeviceId() を使用してください。
See Also
GetEffectInstance(CriAtomMicEffect)
Proエフェクトインスタンスの取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMicEffect | effect | エフェクトハンドル |
Returns
| Type | Description |
|---|---|
| IntPtr | void* CriAfxインスタンス |
Remarks
説明: マイクのエフェクトのCriAfxのインスタンスを取得します。
GetEffectParameter(CriAtomMicEffect, uint)
Proエフェクトパラメーターの取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMicEffect | effect | エフェクトハンドル |
| uint | parameterIndex | パラメーターインデックス |
Returns
| Type | Description |
|---|---|
| float | CriAtomMicEffect パラメーター値 |
Remarks
説明: マイクのエフェクトにパラメーターを取得します。 パラメーターのインデックスを指定すると対応したパラメーターの値が返ります。
GetNumBufferedSamples()
Proバッファリングされたデータのサンプル数取得
Declaration
Returns
| Type | Description |
|---|---|
| uint | CriSint32 バッファリングされているサンプル数 |
Remarks
説明: 内部のバッファに存在するマイク入力データのサンプル数を取得します。
GetNumChannels()
Proマイクのチャンネル数の取得
Declaration
Returns
| Type | Description |
|---|---|
| int | CriSint32 チャンネル数 |
Remarks
説明: マイクのチャンネル数を取得します。
GetNumDevices()
Proマイクデバイス数の取得
Declaration
Returns
| Type | Description |
|---|---|
| int | CriSint32 マイクデバイス数 |
Remarks
説明: 利用可能なマイクデバイス数を取得します。
See Also
GetOutputReadStream()
Proリードストリームの取得
Declaration
Returns
| Type | Description |
|---|---|
| CriAtomAux.ReadStreamCbFunc | CriAtomAux.ReadStreamCbFunc リードストリームのコールバック関数 |
Remarks
説明: マイクの出力方向のリードストリームを取得します。 リードストリームのコールバック関数を呼び出す際は、第1引数にAtomマイクオブジェクトを指定する必要があります。 リードストリームのコールバック関数は定期的に呼び出しを行わず内部バッファが一杯になると、 バッファに入りきらないデータは捨てられます。
GetSamplingRate()
Proマイクのサンプリング周波数の取得
Declaration
Returns
| Type | Description |
|---|---|
| int | CriSint32 サンプリング周波数 |
Remarks
説明: マイクのサンプリング周波数を取得します。
Initialize()
Proマイクライブラリの初期化
Declaration
Remarks
説明: マイクライブラリの初期化を行います。
IsAvailable()
Proマイクの使用可能状態を取得
Declaration
Returns
| Type | Description |
|---|---|
| bool | CriBool true:使用可能, false:使用不可 |
Remarks
説明: オーディオ入力デバイスをチェックして使用可能か状態を取得します。
IsFormatSupported(in Config)
Proフォーマットがサポート状況の取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMic.Config | config | コンフィグ情報 |
Returns
| Type | Description |
|---|---|
| bool | CriBool true:サポート, false:非サポート |
Remarks
説明: 指定したコンフィグ情報のフォーマットがサポートされているか取得します。
See Also
ReadData(float[][], uint)
Proデータの取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| float[][] | data | コピー先バッファ配列 |
| uint | numSamples | コピー先バッファのサンプル数 |
Returns
| Type | Description |
|---|---|
| uint | CriUint32 取得できたサンプル数 |
Remarks
説明: マイクに入力されたデータを取得します。 本関数は定期的に呼び出しを行わず内部バッファが一杯になると、 バッファに入りきらないデータは捨てられます。
SetContext(IntPtr)
Proコンテキスト設定の初期化
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | context | デバイスコンテキスト |
Remarks
説明: プラットフォームの音声入力デバイスのコンテキストを設定します。
- Android: OpenSL ES の SLEngineItf
- iOS: AudioUnit の AUGraph
See Also
SetDeviceDisconnectedCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
Proデバイス切断時コールバックの登録
Declaration
public void SetDeviceDisconnectedCallback(delegate* unmanaged[Cdecl]<IntPtr, void> callback, IntPtr obj)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, void> | callback | コールバックの関数ポインタ |
| IntPtr | obj | コールバックの第一引数に渡されるポインタ |
Remarks
説明: 録音に使用されているデバイスが切断された場合に発生するコールバックを登録します。
SetDeviceId(ArgString)
Proデバイスの指定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| ArgString | deviceId | デバイスID |
Remarks
説明: マイクオブジェクトにデバイスIDを指定します。Create時にconfigで行った設定は上書きされます。
See Also
SetEffectBypass(CriAtomMicEffect, NativeBool)
Proエフェクトインスタンスの取得
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMicEffect | effect | エフェクトハンドル |
| NativeBool | bypass | バイパス設定 |
Remarks
説明: マイクのエフェクトのバイパスを設定します。 bypassにtrueを指定するとエフェクトの処理が行われなくなります。
SetEffectParameter(CriAtomMicEffect, uint, float)
Proエフェクトパラメーターの設定
Declaration
public void SetEffectParameter(CriAtomMicEffect effect, uint parameterIndex, float parameterValue)
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMicEffect | effect | エフェクトハンドル |
| uint | parameterIndex | パラメーターインデックス |
| float | parameterValue | パラメーター値 |
Remarks
説明: マイクのエフェクトにパラメーターを設定します。 パラメーターのインデックスを指定して対応したパラメーターの値を設定します。 本関数を呼ぶだけではエフェクトにパラメーターの反映が行われないため、 最終的にUpdateEffectParameters(CriAtomMicEffect)を実行してパラメーターを反映させる必要があります。。
See Also
SetOutputWriteStream(delegate* unmanaged[Cdecl]<IntPtr, float**, uint, uint>, IntPtr)
Proライトストリームの設定
Declaration
public void SetOutputWriteStream(delegate* unmanaged[Cdecl]<IntPtr, float**, uint, uint> streamCbfunc, IntPtr streamPtr)
Parameters
| Type | Name | Description |
|---|---|---|
| delegate* unmanaged[Cdecl]<IntPtr, float**, uint, uint> | streamCbfunc | ライトストリームのコールバック関数 |
| IntPtr | streamPtr | ライトストリームのコールバック関数に渡されるポインタ |
Remarks
説明: マイクに出力方向のライトストリームを設定します。 ライトストリームのコールバック関数はマイク入力が行われたタイミングで呼び出されます。 コールバック関数は大抵のプラットフォームで別スレッドから呼ばれるため、 呼ばれる側はスレッドセーフ実装する必要があります。
Start()
Proマイクの音声入力開始
Declaration
Remarks
説明: マイクの音声入力を開始します。
See Also
Stop()
Proマイクの音声入力停止
Declaration
Remarks
説明: マイクの音声入力を停止します。
See Also
UpdateEffectParameters(CriAtomMicEffect)
Proエフェクトパラメーターの設定
Declaration
Parameters
| Type | Name | Description |
|---|---|---|
| CriAtomMicEffect | effect | エフェクトハンドル |
Remarks
説明: マイクのエフェクトにパラメーターを設定します。 パラメーターのインデックスを指定して対応したパラメーターの値を設定します。 本関数を呼ぶだけではエフェクトにパラメーターの反映が行われないため、 最終的にUpdateEffectParameters(CriAtomMicEffect)を実行してパラメーターを反映させる必要があります。。