Class CriAtom
CriAtom API
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public static class CriAtom
Fields
DefaultOutputSamplingRate
Declaration
public const int DefaultOutputSamplingRate = 48000
Field Value
Type | Description |
---|---|
int |
FormatAdx
ADX
Declaration
public const int FormatAdx = 1
Field Value
Type | Description |
---|---|
int |
FormatAiff
AIFF
Declaration
public const int FormatAiff = 7
Field Value
Type | Description |
---|---|
int |
FormatAudioBuffer
AudioBuffer
Declaration
public const int FormatAudioBuffer = 9
Field Value
Type | Description |
---|---|
int |
FormatHca
HCA
Declaration
public const int FormatHca = 3
Field Value
Type | Description |
---|---|
int |
FormatHcaMx
HCA-MX
Declaration
public const int FormatHcaMx = 4
Field Value
Type | Description |
---|---|
int |
FormatHw1
ハードウェア固有
Declaration
public const int FormatHw1 = 65537
Field Value
Type | Description |
---|---|
int |
FormatHw2
ハードウェア固有
Declaration
public const int FormatHw2 = 65538
Field Value
Type | Description |
---|---|
int |
FormatRawPcm
Raw PCM
Declaration
public const int FormatRawPcm = 6
Field Value
Type | Description |
---|---|
int |
FormatVibration
振動
Declaration
public const int FormatVibration = 8
Field Value
Type | Description |
---|---|
int |
FormatWave
Wave
Declaration
public const int FormatWave = 5
Field Value
Type | Description |
---|---|
int |
SoundRendererDefault
Declaration
public const CriAtom.SoundRendererType SoundRendererDefault = Asr
Field Value
Type | Description |
---|---|
CriAtom.SoundRendererType |
StreamingCacheIllegalId
不正なストリーミングキャッシュID値
Declaration
public const int StreamingCacheIllegalId = 0
Field Value
Type | Description |
---|---|
int |
Remarks
説明: CriAtomStreamingCache(in Config, IntPtr, int) 関数に失敗した際に返る値です。
See Also
Properties
AudioFrameEndCallback
コールバックイベントオブジェクト
Declaration
public static CriAtom.AudioFrameEndCbFunc AudioFrameEndCallback { get; }
Property Value
Type | Description |
---|---|
CriAtom.AudioFrameEndCbFunc |
See Also
AudioFrameStartCallback
コールバックイベントオブジェクト
Declaration
public static CriAtom.AudioFrameStartCbFunc AudioFrameStartCallback { get; }
Property Value
Type | Description |
---|---|
CriAtom.AudioFrameStartCbFunc |
See Also
DeviceUpdateCallback
コールバックイベントオブジェクト
Declaration
public static CriAtom.DeviceUpdateCbFunc DeviceUpdateCallback { get; }
Property Value
Type | Description |
---|---|
CriAtom.DeviceUpdateCbFunc |
See Also
Methods
AttachPerformanceMonitor()
パフォーマンスモニター機能の追加
Declaration
public static void AttachPerformanceMonitor()
Remarks
説明: パフォーマンス計測機能を追加し、パフォーマンス計測処理を開始します。 本関数を実行後、 GetPerformanceInfo(out PerformanceInfo) 関数を実行することで、 サーバー処理の負荷や、サーバー処理の実行間隔等、ライブラリのパフォーマンス情報を 取得することが可能です。
See Also
CalculateAdxBitrate(int, int)
ADXデータのビットレート計算
Declaration
public static int CalculateAdxBitrate(int numChannels, int samplingRate)
Parameters
Type | Name | Description |
---|---|---|
int | numChannels | データのチャンネル数 |
int | samplingRate | データのサンプリングレート |
Returns
Type | Description |
---|---|
int | ビットレート[bps] |
Remarks
説明: ADXデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
CalculateHcaBitrate(int, int, EncodeQuality)
HCAデータのビットレート計算
Declaration
public static int CalculateHcaBitrate(int numChannels, int samplingRate, CriAtom.EncodeQuality quality)
Parameters
Type | Name | Description |
---|---|---|
int | numChannels | データのチャンネル数 |
int | samplingRate | データのサンプリングレート |
CriAtom.EncodeQuality | quality | データのエンコード品質 |
Returns
Type | Description |
---|---|
int | ビットレート[bps] |
Remarks
説明: HCAデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: qualityにはCRI Atom CraftまたはCRI Atom Encoderで設定したエンコード品質を指定します。
CalculateHcaMxBitrate(int, int, EncodeQuality)
HCA-MXデータのビットレート計算
Declaration
public static int CalculateHcaMxBitrate(int numChannels, int samplingRate, CriAtom.EncodeQuality quality)
Parameters
Type | Name | Description |
---|---|---|
int | numChannels | データのチャンネル数 |
int | samplingRate | データのサンプリングレート |
CriAtom.EncodeQuality | quality | データのエンコード品質 |
Returns
Type | Description |
---|---|
int | ビットレート[bps] |
Remarks
説明: HCA-MXデータのビットレートを計算します。 計算に失敗すると本関数は-1を返します。 計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: qualityにはCRI Atom CraftまたはCRI Atom Encoderで設定したエンコード品質を指定します。
ChangeDefaultChannelConfig(int, ChannelConfig)
チャンネルコンフィグのデフォルト値変更
Declaration
public static void ChangeDefaultChannelConfig(int numChannels, CriAtom.ChannelConfig channelConfig)
Parameters
Type | Name | Description |
---|---|---|
int | numChannels | チャンネル数 |
CriAtom.ChannelConfig | channelConfig | チャンネルコンフィグ |
Remarks
説明: 音声データの各チャンネルと出力スピーカーの対応付けを変更します。 Atomライブラリは、デフォルト状態では音声データが以下のチャンネル構成であると想定して動作します。 |チャンネル数 | 想定されるチャンネル構成 | |--- |--- | |1 | Mono | |2 | Stereo | |3 | _3Lrc | |4 | Quad | |5 | _5 | |6 | _5_1 | |7 | _6_1 | |8 | _7_1 | |9 | Ambisonics2p | |10 | _7_1_2 | |12 | _7_1_4 | |16 | Ambisonics3p | 再生する音声データのチャンネル構成が上記と異なる場合には、本関数を使用してチャンネル構成を変更する必要があります。
注意: 構成変更の影響は、第一引数(num_channels)で指定したチャンネルの音声データにのみ影響します。 そのため、異なるチャンネル数の音声データが混在する場合、各チャンネル数に対してそれぞれチャンネル構成の変更を行う必要があります。
再生中の音声がデフォルト値を参照するタイミングはユーザーの操作に依存します。 そのため、再生中にデフォルト値を変更した場合、意図したタイミングで変更が反映されるとは限りません。 本関数を使用する場合、初期化時など音声を再生する前に実行してください。
ChangeDefaultChannelOrder(int, in int)
チャンネル順序のデフォルト値変更
Declaration
public static void ChangeDefaultChannelOrder(int numChannels, in int channelOrder)
Parameters
Type | Name | Description |
---|---|---|
int | numChannels | チャンネル数 |
int | channelOrder | チャンネル順序 |
Remarks
説明: 指定したチャンネル数の音声データについて、チャンネルの読み込み順序を変更します。 Atomライブラリは、デフォルト状態では音声データが以下のチャンネル順序でインターリーブされていると想定して動作します。 |チャンネル番号 | 想定されるチャンネル | |--- |--- | |0 | レフト | |1 | ライト | |2 | センター | |3 | LFE | |4 | サラウンドレフト | |5 | サラウンドライト | |6 | サラウンドバックレフト | |7 | サラウンドバックライト | |8 | トップフロントレフト | |9 | トップフロントライト | |10 | トップバックレフト | |11 | トップバックライト | 再生する音声データの並び順が上記と異なる場合には、本関数を使用してチャンネルの読み込み順序を変更する必要があります。
補足: モノラル音声はセンターチャンネルと解釈されます。 ただし、デフォルト状態ではレフトスピーカーとライトスピーカーを使用した、いわゆるファントムセンターで出力されます。 (モノラル音声をセンタースピーカーから出力するには、パンスピーカータイプを変更する必要があります。) 5.1.2chの音声データは、デフォルトで以下のチャンネル順序と解釈されます。 |チャンネル番号 | 想定されるチャンネル | |--- |--- | |0 | レフト | |1 | ライト | |2 | センター | |3 | LFE | |4 | サラウンドレフト | |5 | サラウンドライト | |6 | トップレフト | |7 | トップトライト |
注意: 順序変更の影響は、第一引数(num_channels)で指定したチャンネルの音声データにのみ影響します。 そのため、異なるチャンネル数の音声データが混在する場合、各チャンネル数に対してそれぞれチャンネル順序の変更を行う必要があります。
再生中の音声がデフォルト値を参照するタイミングはユーザーの操作に依存します。 そのため、再生中にデフォルト値を変更した場合、意図したタイミングで変更が反映されるとは限りません。 本関数を使用する場合、初期化時など音声を再生する前に実行してください。
DetachPerformanceMonitor()
パフォーマンスモニター機能の削除
Declaration
public static void DetachPerformanceMonitor()
Remarks
説明: パフォーマンス計測処理を終了し、パフォーマンス計測機能を削除します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
EnumAudioEndpointsWASAPI(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
オーディオエンドポイントの列挙
Declaration
public static int EnumAudioEndpointsWASAPI(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> callback, IntPtr @object)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | callback | オーディオエンドポイントコールバック関数 |
IntPtr | object | ユーザ指定オブジェクト |
Returns
Type | Description |
---|---|
int | 列挙されたACBオブジェクトの数 |
Remarks
説明: オーディオエンドポイントを列挙します。 本関数を実行すると、第 1 引数( callback ) でセットされたコールバック関数がオーディオエンドポイント数分だけ呼び出されます。 コールバック関数には、IMMDeviceインスタンスが引数として渡されます。
備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。 コールバック関数のその他の引数については、 別途 CriAtom.AudioEndpointCbFuncWASAPI の説明をご参照ください。 戻り値は列挙されたオーディオエンドポイントの数(登録したコールバック関数が呼び出された回数)です。 オーディオエンドポイントが存在しない場合、本関数は 0 を返します。 エラーが発生した際には -1 を返します。
注意: IMMDeviceインスタンスをコールバック関数内で破棄してはいけません。
See Also
ExecuteAudioProcess()
ユーザーマルチスレッド用サーバー処理の実行
Declaration
public static void ExecuteAudioProcess()
Remarks
説明: CRI Atomライブラリのみを更新します。 スレッドモデルがUserMultiの場合、 アプリケーションは、この関数を定期的に実行する必要があります。 * ファイルの読み込み管理や、データのデコード、音声の出力等、 音声再生に必要な処理のほぼ全てが本関数内で実行されます。 そのため、ライブラリ初期化時に指定したサーバー処理の実行頻度( CriAtom.Config 構造体の server_frequency )を下回る頻度で本関数を実行した場合、音切れ等の問題が発生する可能性 があります。 また、本関数はExecuteMain() 関数と異なり、CRI File Systemライブラリのサーバー処理を実行しません。 アプリケーションが必要なサーバー処理を正しい順序で実行してください。
備考: Single に設定した場合、サーバー処理の排他制御が行われないので、 複数のスレッドから呼び出さないようにしてください。
See Also
ExecuteMain()
マルチスレッド用サーバー処理の実行
Declaration
public static void ExecuteMain()
Remarks
説明: CRI Atomライブラリの内部状態を更新します。 アプリケーションは、この関数を定期的に実行する必要があります。 サーバー処理を実行すべき回数は、ライブラリ初期化時のパラメーターに依存します。 ライブラリ初期化時にスレッドモデルを Multi に設定した場合、 本関数の呼び出し頻度は少なくても問題は発生しません。 なぜなら、リアルタイム性を要求される処理は全てCRI Atomライブラリ内で 定期的に自動実行されるためです。 (最低でも毎秒1回程度実行されていれば、音切れ等の問題が発生することはありません。) ライブラリ初期化時にスレッドモデルを Single や UserMulti に設定した場合、ファイルの読み込み管理や、 データのデコード、音声の出力等、音声再生に必要な処理のほぼ全てが本関数内で実行されます。 また、音声再生処理に同期して、CRI File Systemライブラリのファイルアクセスとデータ展開処理を実行します。 そのため、以下の場合は音切れなどの問題が発生する可能性があるので注意してください。 ・ライブラリ初期化時に指定したサーバー処理の実行頻度 ( CriAtom.Config 構造体のserver_frequency )を下回る頻度で本関数を実行した場合 ・大きいデータの読み込み、圧縮ファイルの読み込み等を行う場合
備考: ライブラリ初期化時にスレッドモデルを Multi に設定した場合でも、 本関数を実行する必要があります。 (スレッドモデルを Multi に設定した場合、ステータス更新等、ごく一部の 処理のみを行うため、本関数内で長時間処理がブロックされることはありません。) CRI File Systemライブラリのサーバー処理は、CRI Atomライブラリ内部で実行されます。 そのため、本関数を実行している場合、アプリケーション側で別途CRI File Systemライブラリ のサーバー処理を呼び出す必要はありません。
See Also
GetAudioClientIsFormatSupportedWASAPI(IntPtr)
指定したフォーマットが利用可能かどうかチェック
Declaration
public static bool GetAudioClientIsFormatSupportedWASAPI(IntPtr format)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | format | 使用するフォーマット |
Returns
Type | Description |
---|---|
bool | 指定されたフォーマットが利用可能かどうか( true = 利用可能、false = 利用不可能) |
Remarks
説明: 引数で指定したフォーマットが、排他モードで利用可能かどうかをチェックします。
備考: 本関数は IAudioClient::IsFormatSupported 関数のラッパーです。 本関数を実行すると、関数内で AudioClient を作成し、IsFormatSupported 関数を実行します。
注意: 本関数はライブラリ初期化前にのみ使用可能です。 一部のデバイス/パラメーターについて、本関数が成功するにもかかわらず、 WASAPI の初期化に失敗するケースが確認されています。 本関数が true を返したにもかかわらず、ライブラリの初期化に失敗する場合には、 指定するフォーマットを変更するか、または共有モードをご使用ください。
GetAudioClientMixFormatWASAPI(IntPtr)
ミキサフォーマットの取得
Declaration
public static bool GetAudioClientMixFormatWASAPI(IntPtr format)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | format | ミキサのフォーマット |
Returns
Type | Description |
---|---|
bool | ミキサのフォーマットが取得できたかどうか( true = 成功、false = 失敗) |
Remarks
説明: 共有モード時に使用されるミキサのフォーマットを取得します。
備考: 本関数は IAudioClient::GetMixFormat 関数のラッパーです。 本関数を実行すると、関数内で AudioClient を作成し、GetMixFormat 関数を実行します。
注意: 本関数はライブラリ初期化前にのみ使用可能です。 共有モードと排他モードとでは、使用できるフォーマットが異なります。 本関数で取得する WAVEFORMATEXTENSIBLE 構造体は IEEE float 形式のPCMデータフォーマットを返しますが、 このフォーマットは排他モードではほとんどの場合使用できません。
GetAudioClientShareModeWASAPI()
共有方式の取得
Declaration
public static int GetAudioClientShareModeWASAPI()
Returns
Type | Description |
---|---|
int | 共有方式 |
Remarks
説明: 現在指定されている共有方式を取得します。
See Also
GetAudioClientWASAPI()
AudioClientの取得
Declaration
public static IntPtr GetAudioClientWASAPI()
Returns
Type | Description |
---|---|
IntPtr | AudioClient |
Remarks
説明: Atomライブラリ内で作成されたAudioClientを取得します。
備考: サウンドデバイスが搭載されていないPCで本関数を実行した場合、 本関数はnullを返します。
注意: 本関数を実行する前に、ライブラリを初期化する必要があります。
GetPerformanceInfo(out PerformanceInfo)
パフォーマンス情報の取得
Declaration
public static void GetPerformanceInfo(out CriAtom.PerformanceInfo info)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.PerformanceInfo | info | パフォーマンス情報 |
Remarks
説明: パフォーマンス情報を取得します。 本関数は、 AttachPerformanceMonitor() 関数実行後から DetachPerformanceMonitor() 関数を実行するまでの間、利用可能です。
See Also
GetStreamingInfo(out StreamingInfo)
ストリーミング情報の取得
Declaration
public static bool GetStreamingInfo(out CriAtom.StreamingInfo streamingInfo)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.StreamingInfo | streamingInfo | ストリーミング情報保存先のポインタ |
Returns
Type | Description |
---|---|
bool | 値を取得できた |
Remarks
説明: CRI Atomライブラリのストリーミング管理モジュールからストリーミング情報を取得します。 本関数は、呼び出された時点のストリーミング情報を streaming_info に保存します。
注意: Atomサーバー内の処理と一部排他制御しているため、 優先度逆転によりAtomサーバーを止めてしまわないように注意してください。 一部のプラットフォームでは、ストリーミング情報を取得できません。 本関数の戻り値を確認してください。 エラーが原因でストリーミング情報を取得できなかった場合については、 エラーコールバックが発生していないかを確認してください。
See Also
GetVersionString()
ライブラリのバージョン番号やビルド情報を返します。
Declaration
public static NativeString GetVersionString()
Returns
Type | Description |
---|---|
NativeString | CriChar8* ライブラリ情報文字列 |
Remarks
説明: ライブラリのバージョン、ビルドした日時、プラットフォームの情報が表示されます。
IsAudioOutputActive()
オーディオ出力が有効かどうかのチェック
Declaration
public static bool IsAudioOutputActive()
Returns
Type | Description |
---|---|
bool | オーディオ出力が有効かどうか |
Remarks
説明: オーディオ出力が有効化どうかをチェックします。 CRI Atomライブラリ初期化時、サウンドデバイスが利用可能であった場合、 本関数はtrueを返します。 CRI Atomライブラリ初期化時に、サウンドデバイスが利用不可能であった場合、 本関数はfalseを返します。
補足: サウンドデバイスが無効な場合でも、Atomライブラリは音声を出力せずに動作します。 (音声データ消費量をタイマを元に計算し、可能な限り音声出力が有効な場合と同等の動作をエミュレートします。) そのため、音声出力デバイスが使用できないケースであっても、 アプリケーション側でAtomライブラリのAPI呼び出しを回避する必要はありません。 (PC環境等、ユーザがサウンドデバイスを無効化しているケースに対し通知を行いたい場合に、 本関数を使用してください。)
注意: 本関数は、「Atomライブラリ初期化時点でオーディオデバイスが利用可能だったかどうか」を返します。 ライブラリ初期化後にユーザがサウンドデバイスを抜き差しするケースについては、本関数では検知できません。 (各機種固有のAPIを使用する必要があります。) オーディオ出力が無効な状態でAtomライブラリを初期化後、 ユーザがオーディオデバイスを有効化したとしても、Atomライブラリは音声出力を行いません。 (オーディオデバイスが接続されたことをAtomライブラリが自動で検出することはありません。) アプリケーション実行中にオーディオデバイスを有効化したい場合には、 Atomライブラリの初期化処理をやり直す必要があります。
IsDeviceInvalidatedWASAPI()
デバイスが無効化されたかどうかのチェック
Declaration
public static bool IsDeviceInvalidatedWASAPI()
Returns
Type | Description |
---|---|
bool | デバイスが無効化されたかどうか(true = 無効化された、false = 正常に動作中) |
Remarks
説明: サウンドデバイスが無効化されたかどうかを返します。
備考: 本関数がtrueを返すのは、アプリケーション実行中にサウンドデバイスを無効化した場合のみです。 元々サウンドデバイスが搭載されていないPCで本関数を実行した場合、本関数はfalseを返します。 (サウンドデバイスの有無は別途 GetAudioClientWASAPI() 関数でチェックする必要があります。)
See Also
IsInitializationSucceededIOS()
サウンドの初期化に成功したか否か
Declaration
public static bool IsInitializationSucceededIOS()
Returns
Type | Description |
---|---|
bool |
Remarks
説明: サウンドライブラリの初期化に成功したか否かを返す関数です。 iOSでは、アプリがバックグラウンドにある状態でサウンドライブラリの初期化を行った場合に 内部的にAudioSessionの初期化等に失敗している場合があります。 本関数で初期化が失敗していることを確認した場合は、アプリがフォアグラウンドにある状態で 再度ライブラリの初期化を行うか、 RecoverSoundIOS() を用いて サウンドの復旧を行う必要があります。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに IsInitializationSucceededIOS() 関数をご利用ください。
IsInitialized()
ライブラリ初期化状態の取得
Declaration
public static bool IsInitialized()
Returns
Type | Description |
---|---|
bool | 初期化中かどうか |
Remarks
説明: CRI Atomライブラリが既に初期化されているかどうかをチェックします。
IsSpatialAudioEnabledWASAPI(SoundRendererType)
スペーシャルオーディオ機能が有効かどうかのチェック
Declaration
public static bool IsSpatialAudioEnabledWASAPI(CriAtom.SoundRendererType type)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.SoundRendererType | type | サウンドレンダラタイプ |
Returns
Type | Description |
---|---|
bool | 機能が有効かどうか(true = 有効、false = 無効) |
Remarks
説明: スペーシャルオーディオ機能が有効になっているかどうかをチェックします。 引数の type には、スペーシャルオーディオ機能が有効化どうかをチェックしたいサウンドレンダラを指定します。
Lock()
サーバー処理の割り込みを防止
Declaration
public static void Lock()
Remarks
説明: サーバー処理の割り込みを防止します。 本関数実行後、Unlock() 関数実行までの間、サーバー処理の動作を防止します。 複数のAPIを同一オーディオフレーム内で確実に実行したい場合には、本関数でサーバー処理の 割り込みを防止し、それらの関数を実行してください。
注意: 上記の例のように、複数のプレーヤーで同時に再生をスタートする場合でも、 ストリーム再生時は同時に発音が開始されるとは限りません。 (バッファリングに伴う再生遅延があるため。) 本関数実行後、長時間Unlock() 関数を呼ばない場合、音声再生が途切れる恐れがあります。 サーバー処理の割り込みを防止する区間は、最小限に抑える必要があります。
See Also
RecoverSoundIOS()
サウンドの復旧
Declaration
public static void RecoverSoundIOS()
Remarks
説明: AudioSessionAddPropertyListener Callback関数から呼び出すための関数です。 ライブラリ内部のボイスを復旧します。 iOSのデーモンであるmediaserverdが死亡した際には、ライブラリ内のボイスが無効なボイスになり、 再生成が必要になります。 このように、ボイスの復旧が必要な際に呼び出してください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに RecoverSoundIOS() 関数をご利用ください。
ResetPerformanceMonitor()
パフォーマンスモニターのリセット
Declaration
public static void ResetPerformanceMonitor()
Remarks
説明: 現在までの計測結果を破棄します。 パフォーマンスモニターは、 AttachPerformanceMonitor() 関数実行直後 からパフォーマンス情報の取得を開始し、計測結果を累積します。 これから計測する区間に対し、以前の計測結果を以降の計測結果に含めたくない場合には、 本関数を実行し、累積された計測結果を一旦破棄する必要があります。
SetAmbisonicsInputFormat(AmbisonicsFormat)
Ambisonics音声のフォーマット指定
Declaration
public static void SetAmbisonicsInputFormat(CriAtom.AmbisonicsFormat format)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.AmbisonicsFormat | format | フォーマット |
Remarks
説明: Ambisonics音声データのチャンネル並び順と正規化方式を指定します。 デフォルトのフォーマットは CRIATOM_AMBISONICS_ACN_SN3D です。
SetAudioClientBufferDurationWASAPI(long)
バッファリング時間の指定
Declaration
public static void SetAudioClientBufferDurationWASAPI(long refTime)
Parameters
Type | Name | Description |
---|---|---|
long | refTime | バッファリング時間 |
Remarks
説明: WASAPI 初期化時に指定するバッファリング時間を指定します。 Atomライブラリは、本関数で指定された時間分のデータを保持可能なサイズのサウンドバッファーを確保します。
備考: 本関数に指定した値が IAudioClient::Initialize 関数に渡されます。 ref_timeに0を指定した場合や、本関数を使用しない場合、 Atomライブラリは初期化時に指定されるサーバー処理周波数の値から、 適切なバッファリング時間を計算します。 PC環境ではハードウェア性能にばらつきがあるため、 ワースト性能のハードウェアに合わせてデフォルトのバッファリング量が多めに設定されています。 (デフォルト状態では4V分のバッファーを持っています。)
注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 バッファリング時間を小さくしすぎると、音途切れ等の問題が発生します。 PC環境ではハードウェアに依存して必要なバッファリング量が異なるため、 本関数を使用した場合、テスト環境でうまく動作していても、 ユーザの環境によっては音途切れが発生する可能性があります。 そのため、バッファリング量を変更する場合には、 ユーザが設定値を変更できる仕組み(オプション画面等)を提供することもご検討ください。
SetAudioClientFormatWASAPI(IntPtr)
出力フォーマットの指定
Declaration
public static void SetAudioClientFormatWASAPI(IntPtr format)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | format | 使用するフォーマット |
Remarks
説明:
説明: 排他モードで使用するフォーマットを指定します。
備考: 本関数に指定したフォーマットが、 IAudioClient::Initialize 関数に渡されます。
注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 排他モードを使用する場合、本関数でのモード指定に加え、 SetAudioClientShareModeWASAPI(int) 関数によるモード指定が必要です。
See Also
SetAudioClientShareModeWASAPI(int)
共有方式の指定
Declaration
public static void SetAudioClientShareModeWASAPI(int mode)
Parameters
Type | Name | Description |
---|---|---|
int | mode | 使用するモード |
Remarks
説明: WASAPIを共有モードで使用するか、排他モードで使用するかを指定します。 本関数を実行しない場合や、 AUDCLNT_SHAREMODE_SHARED を指定して実行した場合、 Atomライブラリは WASAPI を共有モードで初期化します。 AUDCLNT_SHAREMODE_EXCLUSIVE を指定して本関数を実行した場合、 Atomライブラリは WASAPI を排他モードで初期化します。
注意: 本関数はライブラリの初期化よりも先に実行しておく必要があります。 排他モードを使用する場合、本関数でのモード指定に加え、 SetAudioClientFormatWASAPI(IntPtr) 関数によるフォーマットの指定が必要です。
See Also
SetAudioFrameEndCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
オーディオフレーム終了コールバック関数の登録
Declaration
public static void SetAudioFrameEndCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, void> | func | オーディオフレーム終了コールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atomライブラリにオーディオフレーム終了コールバックを登録します。 オーディオフレームは、CRI Atomライブラリ内でサーバー処理を実行するタイミングを示します。 本関数で登録したコールバック関数は、オーディオフレームの終了時(サーバー処理終了直後)に 実行されます。
備考: ライブラリ初期化時にスレッドモデルをマルチスレッド( Multi ) に設定した場合、コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。 ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( UserMulti )、 またはシングルスレッド( Single )に設定した場合、コールバック関数 ExecuteMain() 関数内で呼び出されます。 引数の obj に指定した値は、 CriAtom.AudioFrameEndCbFunc に引数として渡されます。
注意: コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
SetAudioFrameStartCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
オーディオフレーム開始コールバック関数の登録
Declaration
public static void SetAudioFrameStartCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, void> | func | オーディオフレーム開始コールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atomライブラリにオーディオフレーム開始コールバックを登録します。 オーディオフレームは、CRI Atomライブラリ内でサーバー処理を実行するタイミングを示します。 本関数で登録したコールバック関数は、オーディオフレームの開始時(サーバー処理開始直前)に 実行されます。
備考: ライブラリ初期化時にスレッドモデルをマルチスレッド( Multi ) に設定した場合、コールバック関数はCRI Atomライブラリ内で作成されたスレッドから 呼び出されます。 ライブラリ初期化時にスレッドモデルをユーザマルチスレッド( UserMulti )、 またはシングルスレッド( Single )に設定した場合、コールバック関数 ExecuteMain() 関数内で呼び出されます。 引数の obj に指定した値は、 CriAtom.AudioFrameStartCbFunc に引数として渡されます。
注意: コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
SetDefaultConfig(out Config)
CriAtom.Configへのデフォルトパラメーターをセット
Declaration
public static void SetDefaultConfig(out CriAtom.Config pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.Config | pConfig | 初期化用コンフィグ構造体へのポインタ |
Remarks
説明: ::criAtom_Initialize 関数に設定するコンフィグ構造体( CriAtom.Config )に、 デフォルトの値をセットします。
See Also
SetDeviceIdWASAPI(SoundRendererType, in short)
サウンドデバイスの指定
Declaration
public static void SetDeviceIdWASAPI(CriAtom.SoundRendererType type, in short deviceId)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.SoundRendererType | type | サウンドレンダラタイプ |
short | deviceId | デバイスID |
Remarks
説明: サウンドレンダラタイプとサウンドデバイスの紐づけを行います。 本関数でサウンドレンダラに対してデバイスIDを設定すると、 当該サウンドレンダラを指定して出力した音声は、 全て指定したIDに合致するサウンドデバイスから出力されます。 type には、以下の値が指定可能です。 - Hw1(Nativeと同じ値) - Hw2 - Hw3 - Hw4 第2引数(device_id)にnullまたは長さ0の文字列を指定した場合、 当該サウンドレンダラとデバイスIDの紐づけが解除されます。 (既定のデバイスから音声を出力するよう、動作が変更されます。)
備考: サウンドデバイスのIDは IMMDevice::GetId で取得する必要があります。 指定されたIDに一致するサウンドデバイスが見つからない場合、 当該デバイスを指定して再生された音声は、既定のデバイスから出力されます。
SetDeviceUpdateCallback(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
デバイス更新通知の登録
Declaration
public static void SetDeviceUpdateCallback(delegate* unmanaged[Cdecl]<IntPtr, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, void> | func | デバイス更新通知コールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: デバイスの更新通知を受け取るためのコールバックを設定します。 本関数を実行すると、デバイスが更新された際、第 1 引数( callback ) でセットされたコールバック関数が呼び出されます。
備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。
SetDeviceUpdateCallbackWASAPI(delegate* unmanaged[Cdecl]<IntPtr, void>, IntPtr)
デバイス更新通知の登録
Declaration
public static void SetDeviceUpdateCallbackWASAPI(delegate* unmanaged[Cdecl]<IntPtr, void> callback, IntPtr @object)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, void> | callback | デバイス更新通知コールバック関数 |
IntPtr | object | ユーザ指定オブジェクト |
Remarks
説明: デバイスの更新通知を受け取るためのコールバックを設定します。 本関数を実行すると、デバイスが更新された際、第 1 引数( callback ) でセットされたコールバック関数が呼び出されます。
備考: 第 2 引数( object )にセットした値は、コールバック関数の引数として渡されます。
See Also
SetFreeTimeBufferingFlagForDefaultDevice(NativeBool)
ファイルI/Oの空き時間を使ったストリーミング読み込みを行うかどうか
Declaration
public static bool SetFreeTimeBufferingFlagForDefaultDevice(NativeBool flag)
Parameters
Type | Name | Description |
---|---|---|
NativeBool | flag | true=ファイルI/Oの空き時間を使って読み込む |
Returns
Type | Description |
---|---|
bool | 正常に処理が完了 |
Remarks
説明: CRI Atomライブラリのストリーミング管理モジュールに対して、 ファイルI/Oの空き時間を使ってストリーミング読み込みを行うかどうかを設定します。 trueを設定すると、CRI Atomライブラリのストリーミング管理モジュールは ファイルI/Oの空き時間を使って、空きバッファーに対してデータを余分に読み込みます。 falseを設定すると、CRI Atomライブラリのストリーミング管理モジュールは ファイルI/Oの空き時間を使わなくなり、余分なストリーミング読み込みを行わなくなります。 デフォルトではtrueを設定した状態です。
備考: ファイルI/Oの空き時間を使い、空きバッファーに対してデータを余分に読み込んでおくことで、 シークの発生頻度を減らす事ができ、総合的なファイルI/Oの効率が向上します。 一方、通常ファイルのロード処理は、ストリーミングの読み込みよりも優先度が低いため、 空きバッファーが大きすぎると通常ファイルのロード処理を大幅に遅延させてしまいます。
注意: Atomサーバー内の処理と一部排他制御しているため、 優先度逆転によりAtomサーバーを止めてしまわないように注意してください。
SetServerThreadPriorityIOS(int)
サーバスレッドプライオリティの設定
Declaration
public static void SetServerThreadPriorityIOS(int prio)
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Remarks
説明: CRIサーバスレッドのプライオリティを設定します。 引数 prio は pthread のプライオリティ設定値として使用します。 プライオリティ設定値はメインスレッドからの相対値になります。 アプリケーションのメインスレッド(0)よりも高いプライオリティを指定してください。 プライオリティのデフォルト値は16です。
注意: ::criAtom_Initialize_IOS 関数実行前に本関数を実行することはできません。 サーバ処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバ処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。
SetServerThreadPriorityMACOSX(int)
サーバスレッドプライオリティの設定
Declaration
public static void SetServerThreadPriorityMACOSX(int prio)
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Remarks
説明: CRIサーバスレッドのプライオリティを設定します。 引数 prio は pthread のプライオリティ設定値として使用します。 指定できる値の範囲は通常 -16~99で、数字が大きい方が優先度が高くなります。 アプリケーションのメインスレッド(0)よりも高いプライオリティを指定してください。 プライオリティのデフォルト値は10です。
注意: ::criAtom_Initialize_MACOSX 関数実行前に本関数を実行することはできません。 サーバ処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバ処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。
SetSpatialAudioEnabledWASAPI(SoundRendererType, NativeBool)
スペーシャルオーディオ機能の有効化
Declaration
public static void SetSpatialAudioEnabledWASAPI(CriAtom.SoundRendererType type, NativeBool sw)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.SoundRendererType | type | サウンドレンダラタイプ |
NativeBool | sw | 機能を有効にするかどうか(true = 有効化、false = 無効化) |
Remarks
説明: スペーシャルオーディオ機能(Microsoft Spatial Sound)を有効にします。 引数の type には、スペーシャルオーディオ機能を有効(又は無効)にするサウンドレンダラを指定します。
備考: 現行のライブラリでは、スペーシャルオーディオ機能はデフォルトで有効です。 そのため、スペーシャルオーディオ機能を無効にしたい場合を除き、本関数を明示的に呼び出す必要はありません。
注意: 本関数はライブラリ初期化前に使用する必要があります。
SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
ユーザアロケーターの登録
Declaration
public static void SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> pMallocFunc, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> pFreeFunc, IntPtr pObj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> | pMallocFunc | メモリ確保関数 |
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | pFreeFunc | メモリ解放関数 |
IntPtr | pObj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atom ライブラリにメモリアロケーター(メモリの確保/解放関数)を登録します。 本メソッドでアロケーターを登録すると、Atomライブラリがワーク領域を必要とするタイミングで、 ユーザが登録したメモリ確保/解放処理が呼び出されることになります。 その結果、ワーク領域を必要とする関数( CreateAdxPlayer(in AdxPlayerConfig, IntPtr, int) 関数等)に対し、 個別にワーク領域をセットする処理を省略することが可能になります。 (ワーク領域に null ポインタ、ワーク領域サイズに 0 バイトを指定した場合でも、 アロケーターからの動的メモリ確保によりライブラリが問題なく動作するようになります。)
注意: メモリ確保/解放関数のポインタに null を指定することで、 アロケーターの登録を解除することも可能です。 ただし、未解放のメモリ領域が残っている状態で登録を解除すると、 エラーコールバックが返され、登録の解除に失敗します。 (引き続き登録済みのアロケーターが呼び出されることになります。) 本メソッドは内部的に SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数と SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を呼び出します。 本関数とこれらの API を併用しないようご注意ください。 (本関数の呼び出しにより、上記 API にセットした内容が上書きされます。) また、登録されたメモリアロケーター関数はマルスレッドモード時に複数のスレッドからコール されることがあります。従って、メモリアロケート処理がスレッドセーフでない場合は独自に メモリアロケート処理を排他制御する必要があります。
SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr)
メモリ解放関数の登録
Declaration
public static void SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> | func | メモリ解放関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atomライブラリにメモリ解放関数を登録します。 CRI Atomライブラリ内がライブラリ内で行うメモリ解放処理を、 ユーザ独自のメモリ解放処理に置き換えたい場合に使用します。 本関数の使用手順は以下のとおりです。 (1) CriAtom.FreeFunc インターフェースに副ったメモリ解放関数を用意する。 (2) SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を使用し、CRI Atomライブラリに対して メモリ解放関数を登録する。
備考: 引数の obj に指定した値は、 CriAtom.FreeFunc に引数として渡されます。 メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。
注意: メモリ解放関数を登録する際には、合わせてメモリ確保関数( CriAtom.MallocFunc )を 登録する必要があります。
See Also
SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr)
メモリ確保関数の登録
Declaration
public static void SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr> | func | メモリ確保関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: CRI Atomライブラリにメモリ確保関数を登録します。 CRI Atomライブラリ内がライブラリ内で行うメモリ確保処理を、 ユーザ独自のメモリ確保処理に置き換えたい場合に使用します。 本関数の使用手順は以下のとおりです。 (1) CriAtom.MallocFunc インターフェースに副ったメモリ確保関数を用意する。 (2) SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数を使用し、CRI Atomライブラリに対して メモリ確保関数を登録する。
備考: 引数の obj に指定した値は、 CriAtom.MallocFunc に引数として渡されます。 メモリ確保時にメモリマネージャー等を参照する必要がある場合には、 当該オブジェクトを本関数の引数にセットしておき、コールバック関数で引数を経由 して参照してください。
注意: メモリ確保関数を登録する際には、合わせてメモリ解放関数( CriAtom.FreeFunc )を 登録する必要があります。
See Also
SetupAudioSessionIOS(ref AudioSessionConfigIOS)
AudioSessionの設定
Declaration
public static void SetupAudioSessionIOS(ref CriAtom.AudioSessionConfigIOS config)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.AudioSessionConfigIOS | config |
Remarks
説明: コンフィグに従ってAudioSessionの設定を行います。 より詳細な設定を行いたい場合はこの関数を呼び出さず、AudioSessionの各種APIを用いて設定してください。
StartSoundIOS()
サウンド処理の再開
Declaration
public static void StartSoundIOS()
Remarks
説明: AudioSessionのInterruption Callbak関数から呼び出すための関数です。 サウンド処理を再開します。 本関数を呼び出す前に、AudioSessionのパメラータ設定とアクティベイトを行ってください。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに StartSoundIOS() 関数をご利用ください。
注意: ::criAtom_Initialize_IOS 関数実行前に本関数を実行することはできません。
See Also
StopSoundIOS()
サウンド処理の停止
Declaration
public static void StopSoundIOS()
Remarks
説明: AudioSessionのInterruption Callbak関数から呼び出すための関数です。 サウンド処理を停止します。 本関数は下位レイヤ向けのAPIです。 AtomExレイヤの機能を利用する際には、本関数の代わりに StopSoundIOS() 関数をご利用ください。
注意: ::criAtom_Initialize_IOS 関数実行前に本関数を実行することはできません。
See Also
Unlock()
サーバー処理の割り込み防止を解除
Declaration
public static void Unlock()
Remarks
説明: Lock() 関数による、サーバー処理の割り込み防止を解除します。