Class CriAtomEx
CriAtomEx API
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public static class CriAtomEx
Fields
DefaultVoicesPerPool
デフォルトボイス数
Declaration
public const int DefaultVoicesPerPool = 8
Field Value
Type | Description |
---|---|
int |
Remarks
説明: ボイスプール当たりのボイス数のデフォルト値です。 ボイスプール作成時にデフォルト値設定を使用すると、 DefaultVoicesPerPool 数分のボイスが確保されます。
See Also
FormatHca
HCA
Declaration
public const int FormatHca = 3
Field Value
Type | Description |
---|---|
int |
IgnoreFadeOut
フェードアウト処理の無効化指定値
Declaration
public const int IgnoreFadeOut = -1
Field Value
Type | Description |
---|---|
int |
Remarks
説明: フェーダーのフェードアウト処理を無効化するための値です。 SetFadeOutTime(int) 関数の第2引数に本パラメーターをセットすることで、 フェードアウト処理を無効化することが可能です。
See Also
InvalidAisacControlId
AISACコントロールIDの無効値
Declaration
public const uint InvalidAisacControlId = 4294967295
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: AISACコントロールIDの無効値です。
See Also
InvalidBlockIndex
無効なブロックインデックス
Declaration
public const uint InvalidBlockIndex = 4294967295
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: GetCurrentBlockIndex() 関数で再生中の音声のカレントブロック インデックスを取得した際、再生中の音声がブロックシーケンスではない場合に 返される無効なインデックスです。
See Also
InvalidPlaybackId
無効な再生ID
Declaration
public const uint InvalidPlaybackId = 4294967295
Field Value
Type | Description |
---|---|
uint |
Remarks
説明: Start() 関数で音声の再生を開始した際、 ボイスリミットコントロール等によりボイスが確保できなかった場合に返される、 無効な再生IDです。
備考: 再生 ID を指定する API に対して本 ID をセットした場合でも、 エラーコールバックは発生しません。 (何もされずに関数からリターンします。) そのため、 Start() 関数の結果にかかわらず、 再生 ID を使用した処理を常時行っても、特に問題ありません。
See Also
MaxVoicesPerPool
最大ボイス数
Declaration
public const int MaxVoicesPerPool = 32767
Field Value
Type | Description |
---|---|
int |
Remarks
説明: ボイスプール当たりのボイス数の最大値です。
MinVoicesPerPool
最小ボイス数
Declaration
public const int MinVoicesPerPool = 1
Field Value
Type | Description |
---|---|
int |
Remarks
説明: ボイスプール当たりのボイス数の最小値です。
OutputPortMaxNameLength
出力ポートの名前の長さの最大値
Declaration
public const int OutputPortMaxNameLength = 64
Field Value
Type | Description |
---|---|
int |
Remarks
説明: CriAtomExOutputPort.Config::name に名前として指定できる文字列の最大長です。
See Also
StreamingCacheIllegalId
不正なストリーミングキャッシュID値
Declaration
public const int StreamingCacheIllegalId = 0
Field Value
Type | Description |
---|---|
int |
Remarks
説明: CriAtomExStreamingCache(in Config, IntPtr, int) 関数に失敗した際に返る値です。
See Also
Properties
CueLinkCallback
コールバックイベントオブジェクト
Declaration
public static CriAtomEx.CueLinkCbFunc CueLinkCallback { get; }
Property Value
Type | Description |
---|---|
CriAtomEx.CueLinkCbFunc |
See Also
MonitoringVoiceStopCallback
コールバックイベントオブジェクト
Declaration
public static CriAtomEx.MonitoringVoiceStopCbFunc MonitoringVoiceStopCallback { get; }
Property Value
Type | Description |
---|---|
CriAtomEx.MonitoringVoiceStopCbFunc |
See Also
PlaybackCancelCallback
コールバックイベントオブジェクト
Declaration
public static CriAtomExPlayback.CancelCbFunc PlaybackCancelCallback { get; }
Property Value
Type | Description |
---|---|
CriAtomExPlayback.CancelCbFunc |
See Also
TrackTransitionBySelectorCallback
コールバックイベントオブジェクト
Declaration
public static CriAtomEx.TrackTransitionBySelectorCbFunc TrackTransitionBySelectorCallback { get; }
Property Value
Type | Description |
---|---|
CriAtomEx.TrackTransitionBySelectorCbFunc |
See Also
VoiceEventCallback
コールバックイベントオブジェクト
Declaration
public static CriAtomEx.VoiceEventCbFunc VoiceEventCallback { get; }
Property Value
Type | Description |
---|---|
CriAtomEx.VoiceEventCbFunc |
See Also
Methods
AnalyzeAudioHeader(IntPtr, int, out FormatInfo)
オーディオヘッダーの解析
Declaration
public static bool AnalyzeAudioHeader(IntPtr buffer, int bufferSize, out CriAtomEx.FormatInfo info)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | buffer | オーディオデータを格納したバッファー |
int | bufferSize | オーディオデータを格納したバッファーのサイズ |
CriAtomEx.FormatInfo | info | フォーマット情報 |
Returns
Type | Description |
---|---|
bool | フォーマット情報が取得できたかどうか?(取得できた:true/取得できない:false) |
Remarks
説明: メモリにロードされた音声データのフォーマットを解析します。 解析に成功すると、本関数は true を返し、音声データのフォーマット情報を 第3引数( info )に格納します。 解析に失敗した場合、本関数は false を返します。
備考: 本関数の第1引数( buffer )には、オーディオデータのヘッダー領域 (音声ファイルの先頭部分をロードしたもの)を格納しておく必要があります。 音声データの途中部分をセットした場合や、ヘッダー前に余計なデータが付加されている場合、 ヘッダーの途中までしか格納されていない場合には、本関数はフォーマットの解析に失敗します。 ADXデータやHCAデータについては、音声ファイルの先頭から2048バイト分の領域をセットすれば、 フォーマットの解析に失敗することはありません。
注意: 現状、本関数はADXデータとHCAデータの解析にしか対応していません。 HCA-MXデータについては解析は可能ですが、ヘッダー情報からはHCAデータなのか HCA-MXデータなのかは区別できないため、フォーマット種別として FormatHca が返されます。
ApplyDspBusSnapshot(ArgString, int)
DSPバススナップショットの適用
Declaration
public static void ApplyDspBusSnapshot(ArgString snapshotName, int timeMs)
Parameters
Type | Name | Description |
---|---|---|
ArgString | snapshotName | スナップショット名 |
int | timeMs | 時間(ミリ秒) |
Remarks
説明: DSPバススナップショットを適用します。 本関数を呼び出すと、スナップショットで設定したパラメーターに time_ms 掛けて変化します。 引数 snapshot_name に CRI_NULL を指定すると、元のDSPバス設定の状態(スナップショットが適用されていない状態)に戻ります。
See Also
AttachDspBusSetting(ArgString, IntPtr, int)
DSPバス設定のアタッチ
Declaration
public static void AttachDspBusSetting(ArgString setting, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
ArgString | setting | DSPバス設定の名前 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: DSPバス設定からDSPバスを構築してサウンドレンダラにアタッチします。 本関数を実行するには、あらかじめACF情報を登録しておく必要があります。
備考: DSPバス設定のアタッチに必要なワークメモリのサイズは、 CRI Atom Craftで作成したDSPバス設定の内容によって変化します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
See Also
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で設定したエンコード品質を指定します。
CalculateWorkSize(in Config)
ライブラリ初期化用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSize(in CriAtomEx.Config config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Config | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomEx.Config )の内容によって変化します。 引数にnullを指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: CriAtomEx.Config 構造体のacf_infoメンバに値を設定している場合、本関数は失敗し-1を返します。 初期化処理内でACFデータの登録を行う場合は、本関数値を使用したメモリ確保ではなくADXシステムによる メモリアロケーターを使用したメモリ確保処理が必要になります。
See Also
CalculateWorkSizeANDROID(in ConfigANDROID)
ライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigANDROID | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomEx.ConfigANDROID )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: CriAtomEx.ConfigANDROID 構造体のacf_infoメンバに値を設定している場合、本関数は失敗し-1を返します。 初期化処理内でACFデータの登録を行う場合は、本関数値を使用したメモリ確保ではなくADXシステムによる メモリアロケータを使用したメモリ確保処理が必要になります。
See Also
CalculateWorkSizeForDspBusSetting(ArgString)
DSPバス設定のアタッチ用ワークサイズの計算
Declaration
public static int CalculateWorkSizeForDspBusSetting(ArgString setting)
Parameters
Type | Name | Description |
---|---|---|
ArgString | setting | DSPバス設定の名前 |
Returns
Type | Description |
---|---|
int | 必要ワーク領域サイズ |
Remarks
説明: DSPバス設定からDSPバスを構築するのに必要なワーク領域サイズを計算します。 本関数を実行するには、あらかじめACF情報を登録しておく必要があります ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: DSPバス設定のアタッチに必要なワークメモリのサイズは、CRI Atom Craftで作成した DSPバス設定の内容によって変化します。
See Also
CalculateWorkSizeForDspBusSettingFromAcfData(IntPtr, int, ArgString)
DSPバス設定のアタッチ用ワークサイズの計算
Declaration
public static int CalculateWorkSizeForDspBusSettingFromAcfData(IntPtr acfData, int acfBufferSize, ArgString settingName)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acfData | ACFデータ |
int | acfBufferSize | ACFデータサイズ |
ArgString | settingName | DSPバス設定の名前 |
Returns
Type | Description |
---|---|
int | 必要ワーク領域サイズ |
Remarks
説明: DSPバス設定からDSPバスを構築するのに必要なワーク領域サイズを計算します。 CalculateWorkSizeForDspBusSetting(ArgString) 関数と違い、 ACF情報を登録する前でも本関数は実行可能です。 (ただし、ACFデータを事前にメモリにロードし、 SetConfigForWorkSizeCalculation(in Config) 関数でASR初期化用コンフィグ構造体を仮登録しておく必要があります。) ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、 エラーコールバックのメッセージで確認可能です。
備考: DSPバス設定のアタッチに必要なワークメモリのサイズは、CRI Atom Craftで作成した DSPバス設定の内容によって変化します。
注意: ハードウェアDSPを使用するプラットフォーム(ASRを使用しないプラットフォーム)では、 本関数でワーク領域サイズを取得することができない可能性があります。 (本関数実行時にエラーコールバックが発生したり、負値が返される可能性があります。) 本関数が動作しないプラットフォームについては、 ライブラリの初期化後に CalculateWorkSizeForDspBusSetting(ArgString) 関数を使用して必要なワーク領域サイズを計算してください。
See Also
CalculateWorkSizeForRegisterAcfData(IntPtr, int)
オンメモリACFデータの登録に必要なワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForRegisterAcfData(IntPtr acfData, int acfDataSize)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acfData | ACFデータアドレス |
int | acfDataSize | ACFデータサイズ |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: RegisterAcfData(ReadOnlySpan<byte>) 関数の実行に必要なワーク領域サイズを計算します。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに RegisterAcfData(ReadOnlySpan<byte>) 関数でACF情報を登録する際には、 本関数が返すサイズ分のメモリをワーク領域として渡す必要があります。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
注意: ワーク領域のサイズはライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に指定したパラメーターによって変化します。 そのため、本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CalculateWorkSizeForRegisterAcfFile(CriFsBinder, ArgString)
ACFファイルの登録に必要なワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForRegisterAcfFile(CriFsBinder binder, ArgString path)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ArgString | path | ファイルパス |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: RegisterAcfFile(CriFsBinder, ArgString, IntPtr, int) 関数の実行に必要なワーク領域サイズを計算します。 本関数は、 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録の有無によって 計算に使用する要素が異なります。 - アロケーター登録時:ACFファイルを一時的に読み込み、ACF内に記録されているカテゴリ数、 再生単位でのカテゴリ参照数、REACT数を使用したサイズ計算が行われます。 - アロケーター未登録時:ライブラリ初期化時に指定した CriAtomEx.Config 構造体の max_categoriesメンバ、categories_per_playbackメンバを使用したサイズ計算が行われます。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
CalculateWorkSizeForRegisterAcfFileById(CriFsBinder, ushort)
ACFファイルの登録に必要なワーク領域サイズの計算(CPKコンテンツID指定)
Declaration
public static int CalculateWorkSizeForRegisterAcfFileById(CriFsBinder binder, ushort id)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ushort | id | CPKコンテンツID |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: RegisterAcfFileById(CriFsBinder, ushort, IntPtr, int) 関数の実行に必要なワーク領域サイズを計算します。 ファイルパスの代わりにCPKコンテンツIDを指定する点を除けば、 CalculateWorkSizeForRegisterAcfFile(CriFsBinder, ArgString) 関数と機能は同じです。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
See Also
CalculateWorkSizeForUserPcmOutput(in ConfigForUserPcmOutput)
ユーザPCM出力方式用ワーク領域サイズ計算
Declaration
public static int CalculateWorkSizeForUserPcmOutput(in CriAtomEx.ConfigForUserPcmOutput config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigForUserPcmOutput | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ユーザPCM出力方式でライブラリを初期化するために必要な、 ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomEx.ConfigForUserPcmOutput )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は InitializeForUserPcmOutput(in ConfigForUserPcmOutput, IntPtr, int) 関数を使用して ライブラリを初期化する場合に使用します。 Initialize(in Config, IntPtr, int) 関数を使用する場合には、本関数ではなく CalculateWorkSize(in Config) 関数を使用してワーク領域サイズを計算してください。
See Also
CalculateWorkSizeIOS(in ConfigIOS)
ライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigIOS | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomEx.ConfigIOS )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: CriAtomEx.ConfigIOS 構造体のacf_infoメンバに値を設定している場合、本関数は失敗し-1を返します。 初期化処理内でACFデータの登録を行う場合は、本関数値を使用したメモリ確保ではなくADXシステムによる メモリアロケータを使用したメモリ確保処理が必要になります。
See Also
CalculateWorkSizeMACOSX(in ConfigMACOSX)
ライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigMACOSX | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomEx.ConfigMACOSX )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: CriAtomEx.ConfigMACOSX 構造体のacf_infoメンバに値を設定している場合、本関数は失敗し-1を返します。 初期化処理内でACFデータの登録を行う場合は、本関数値を使用したメモリ確保ではなくADXシステムによる メモリアロケータを使用したメモリ確保処理が必要になります。
See Also
CalculateWorkSizePC(in ConfigPC)
ライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigPC | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomEx.ConfigPC )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: CriAtomEx.Config 構造体のacf_infoメンバに値を設定している場合、本関数は失敗し-1を返します。 初期化処理内でACFデータの登録を行う場合は、本関数値を使用したメモリ確保ではなくADXシステムによる メモリアロケーターを使用したメモリ確保処理が必要になります。
See Also
CalculateWorkSizePULSE(in ConfigPULSE)
ライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigPULSE | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomEx.ConfigPULSE )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: CriAtomEx.ConfigPULSE 構造体のacf_infoメンバに値を設定している場合、本関数は失敗し-1を返します。 初期化処理内でACFデータの登録を行う場合は、本関数値を使用したメモリ確保ではなくADXシステムによる メモリアロケータを使用したメモリ確保処理が必要になります。
See Also
CalculateWorkSizeWASAPI(in ConfigWASAPI)
ライブラリ初期化用ワーク領域サイズの計算
Declaration
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigWASAPI | config | 初期化用コンフィグ構造体 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: ライブラリを使用するために必要な、ワーク領域のサイズを取得します。
備考: ライブラリが必要とするワーク領域のサイズは、ライブラリ初期化用コンフィグ 構造体( CriAtomEx.ConfigWASAPI )の内容によって変化します。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: CriAtomEx.ConfigWASAPI 構造体のacf_infoメンバに値を設定している場合、本関数は失敗し-1を返します。 初期化処理内でACFデータの登録を行う場合は、本関数値を使用したメモリ確保ではなくADXシステムによる メモリアロケーターを使用したメモリ確保処理が必要になります。
See Also
ControlAcfConsistencyCheck(NativeBool)
ACF整合性チェック機能のON/OFF
Declaration
public static void ControlAcfConsistencyCheck(NativeBool sw)
Parameters
Type | Name | Description |
---|---|---|
NativeBool | sw | スイッチ(false = チェック無効、true = チェック有効) |
Remarks
説明: ACBロード時のACFとの整合性チェック機能のON/OFFを設定します。
注意: デフォルトの状態は「チェック有効」になっています。「チェック無効」に設定した場合に、 整合性がない組み合わせのデータを使用すると、本来目的とする効果が得られません。 また、「チェック無効」にした場合でも、音声処理実行時にACBから参照しているACF項目が 見つからないときには別途エラーコールバックが発生します。
ControlVirtualSpeakerSetting(NativeBool)
バーチャルスピーカー設定のON/OFF
Declaration
public static void ControlVirtualSpeakerSetting(NativeBool sw)
Parameters
Type | Name | Description |
---|---|---|
NativeBool | sw | スイッチ(false = 無効、true = 有効) |
Remarks
説明: パン3Dや3Dポジショニングの計算時にバーチャルスピーカーの設定を使用する機能のON/OFFを設定します。 この設定を有効にすると、マルチチャンネルサウンドは SetVirtualSpeakerAngleArray(uint, in float) 関数にて設定した バーチャルスピーカー角度からそれぞれ再生されます。
注意: デフォルトの状態は「無効」になっています。 また、何かボイスを再生中に「有効」にした場合、パン3Dや3Dポジショニングの計算には即時反映されません。 次回ボイス再生時から反映されます。
See Also
DetachDspBusSetting()
DSPバス設定のデタッチ
Declaration
public static void DetachDspBusSetting()
Remarks
説明: DSPバス設定をデタッチします。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 DSPバス設定アタッチ時に確保されたメモリ領域が解放されます。 (DSPバス設定アタッチ時にワーク領域を渡した場合、本関数実行後であれば ワーク領域を解放可能です。)
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
See Also
DetachPerformanceMonitor()
パフォーマンスモニター機能の削除
Declaration
public static void DetachPerformanceMonitor()
Remarks
説明: パフォーマンス計測処理を終了し、パフォーマンス計測機能を削除します。
注意: 本関数は完了復帰型の関数です。 本関数を実行すると、しばらくの間Atomライブラリのサーバー処理がブロックされます。 音声再生中に本関数を実行すると、音途切れ等の不具合が発生する可能性があるため、 本関数の呼び出しはシーンの切り替わり等、負荷変動を許容できるタイミングで行ってください。
DisableBackgroundPlaybackIOS()
バックグラウンド再生の終了
Declaration
Remarks
説明: バックグラウンド再生の終了をAtomライブラリに通知します。
EnableBackgroundPlaybackIOS()
バックグラウンド再生の開始
Declaration
Remarks
説明: バックグラウンド再生の開始をAtomライブラリに通知します。
EnableCalculationAisacControlFrom3dPosition(NativeBool)
パンタイプがパン3Dの時に、距離減衰AISACと角度AISACコントロール値を音源に反映するか設定
Declaration
public static void EnableCalculationAisacControlFrom3dPosition(NativeBool flag)
Parameters
Type | Name | Description |
---|---|---|
NativeBool | flag | AISACコントロール値を適用するか?(true:する、false:しない) |
Remarks
説明: 引数の flag に true を設定すると、パンタイプがパン3Dの音源を再生する際に、3Dソースと3Dリスナーオブジェクトが 設定されているときは常に距離減衰AISACと角度AISACの計算結果が音源に適用されます。
注意: Atomライブラリのデフォルトでは、パン3D音源に対して距離減衰AISACと角度AISACの計算結果は適用されません。 本関数はCRI Atomライブラリ Ver.2.17.19 以前の動作との互換の為に追加されました。
See Also
EnumerateVoiceInfos(delegate* unmanaged[Cdecl]<IntPtr, VoiceInfoDetail*, void>, IntPtr)
ボイス情報の列挙
Declaration
public static void EnumerateVoiceInfos(delegate* unmanaged[Cdecl]<IntPtr, CriAtomEx.VoiceInfoDetail*, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, VoiceInfoDetail*, void> | func | ボイス情報コールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: 再生中のボイスの情報を列挙します。 本関数を実行すると、第 1 引数( func ) でセットされたコールバック関数が再生中のボイスの数分だけ呼び出されます。 コールバック関数には、再生中のボイスに関する詳細情報が CriAtomEx.VoiceInfoDetail 構造体として渡されます。
備考: 第 2 引数( obj )にセットした値は、コールバック関数の引数として渡されます。 コールバック関数のその他の引数については、 別途 CriAtomEx.VoiceInfoCbFunc の説明をご参照ください。
注意: 本関数で登録したコールバックには、 発音可能なボイスリソースを持つボイスの情報だけが返されます。 (バーチャル化されたボイスの情報は返されません。)
See Also
ExecuteAudioProcess()
ユーザーマルチスレッド用サーバー処理の実行
Declaration
public static void ExecuteAudioProcess()
Remarks
説明: CRI Atomライブラリのみを更新します。 スレッドモデルがUserMultiの場合、 アプリケーションは、この関数を定期的に実行する必要があります。 ファイルの読み込み管理や、データのデコード、音声の出力等、 音声再生に必要な処理のほぼ全てが本関数内で実行されます。 そのため、ライブラリ初期化時に指定したサーバー処理の実行頻度( CriAtomEx.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ライブラリのファイルアクセスとデータ展開処理を実行します。 そのため、ライブラリ初期化時に指定したサーバー処理の実行頻度( CriAtomEx.Config 構造体の server_frequency )を下回る頻度で本関数を実行した場合や、 大きいデータの読み込み、圧縮ファイルの読み込み等を行う場合、 音切れ等の問題が発生する可能性があるので注意してください。
備考: ライブラリ初期化時にスレッドモデルを Multi に設定した場合でも、 本関数を実行する必要があります。 (スレッドモデルを Multi の場合、ステータス更新等、ごく一部の 処理のみを行うため、本関数内で長時間処理がブロックされることはありません。) CRI File Systemライブラリのサーバー処理は、CRI Atomライブラリ内部で実行されます。 そのため、本関数を実行している場合、アプリケーション側で別途CRI File Systemライブラリ のサーバー処理を呼び出す必要はありません。
Finalize()
ライブラリの終了
Declaration
public static void Finalize()
Remarks
説明: ライブラリを終了します。
注意: Initialize(in Config, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
FinalizeANDROID()
ライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。 - Finalize() - Finalize() - Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializeANDROID(in ConfigANDROID, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
FinalizeForUserPcmOutput()
ユーザPCM出力用ライブラリ終了処理
Declaration
public static void FinalizeForUserPcmOutput()
Remarks
説明: ユーザPCM出力モードで初期化されたライブラリに対し、終了処理を行います。
注意: 本関数は InitializeForUserPcmOutput(in ConfigForUserPcmOutput, IntPtr, int) 関数を使用してライブラリを初期化した場合に使用します。 Initialize(in Config, IntPtr, int) 関数を使用した場合には、本関数ではなく Finalize() 関数を使用して終了処理を行ってください。
See Also
FinalizeIOS()
ライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。 - Finalize() - Finalize() - Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializeIOS(in ConfigIOS, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
FinalizeMACOSX()
ライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。 - Finalize() - Finalize() - Finalize() . 本関数を実行する場合、上記関数を実行しないでください。 InitializeMACOSX(in ConfigMACOSX, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
FinalizePC()
ライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。 - Finalize() - Finalize() - Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializePC(in ConfigPC, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
FinalizePULSE()
ライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。 - Finalize() - Finalize() - Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializePULSE(in ConfigPULSE, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
FinalizeWASAPI()
ライブラリの終了
Declaration
Remarks
説明: ライブラリを終了します。
注意: 本関数は内部的に以下の関数を実行します。 - Finalize() - Finalize() - Finalize() 本関数を実行する場合、上記関数を実行しないでください。 InitializeWASAPI(in ConfigWASAPI, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
GetAcfVersion(IntPtr, int, out NativeBool)
オンメモリACFのバージョン取得
Declaration
public static uint GetAcfVersion(IntPtr acfData, int acfDataSize, out NativeBool flag)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acfData | ACFデータアドレス |
int | acfDataSize | ACFデータサイズ |
NativeBool | flag | レジスト可能フラグ |
Returns
Type | Description |
---|---|
uint | ACFフォーマットバージョン |
Remarks
説明: メモリ上に配置されたACFデータのフォーマットバージョンを取得します。 また、flag引数にレジスト可能なバージョンかどうかをBool値で返します。
GetAcfVersionFromFile(CriFsBinder, ArgString, out NativeBool, IntPtr, int)
ACFファイルのバージョン取得
Declaration
public static uint GetAcfVersionFromFile(CriFsBinder binder, ArgString path, out NativeBool flag, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ArgString | path | ファイルパス |
NativeBool | flag | レジスト可能フラグ |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
uint | ACFフォーマットバージョン |
Remarks
説明: ACFファイルをロードし、ACFデータのフォーマットバージョンを取得します。 ACF情報の登録に必要なワーク領域のサイズは、 CalculateWorkSizeForRegisterAcfFile(CriFsBinder, ArgString) 関数で計算します。 ACFファイルフォーマットバージョンを元にflag引数にレジスト可能なバージョンかどうかをBool値で返します。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) データがCPKにパックされていない場合、引数binderにはnullを指定してください。
注意: 本関数にセットしたワーク領域は、 アプリケーションで保持する必要はありません。 (ロードしたデータは関数終了時に解放されます。)
GetAcfVersionFromFileById(CriFsBinder, ushort, out NativeBool, IntPtr, int)
ACFファイルのバージョン取得(CPKコンテンツID指定)
Declaration
public static uint GetAcfVersionFromFileById(CriFsBinder binder, ushort id, out NativeBool flag, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ushort | id | CPKコンテンツID |
NativeBool | flag | レジスト可能フラグ |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
uint | ACFフォーマットバージョン |
Remarks
説明: ACFファイルをロードし、ACFデータのフォーマットバージョンを取得します。 ファイルパスの代わりにCPKコンテンツIDを指定する点を除けば、 GetAcfVersionFromFile(CriFsBinder, ArgString, out NativeBool, IntPtr, int) 関数と機能は同じです。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
See Also
GetAppliedDspBusSnapshotName()
適用中のDSPバススナップショット名の取得
Declaration
public static NativeString GetAppliedDspBusSnapshotName()
Returns
Type | Description |
---|---|
NativeString | CriChar8* スナップショット名文字列へのポインタ。 スナップショットが適用されていない場合や取得に失敗した場合はCRI_NULLが返ります。 |
Remarks
説明: 適用中のDSPバススナップショット名を取得します。 スナップショットが適用されていない場合はCRI_NULLが返ります。
See Also
GetGameVariableById(uint)
ゲーム変数の取得
Declaration
public static float GetGameVariableById(uint id)
Parameters
Type | Name | Description |
---|---|---|
uint | id | ゲーム変数ID |
Returns
Type | Description |
---|---|
float | ゲーム変数値 |
Remarks
説明: ACFファイル内に登録されているゲーム変数値を取得します。 指定した id のゲーム変数が存在しない場合、-1.0f が返ります。
注意: 本関数を実行する前に、ACFファイルを登録しておく必要があります。
GetGameVariableByName(ArgString)
ゲーム変数の取得
Declaration
public static float GetGameVariableByName(ArgString name)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | ゲーム変数名 |
Returns
Type | Description |
---|---|
float | ゲーム変数値 |
Remarks
説明: ACFファイル内に登録されているゲーム変数を取得します。 指定した名前のゲーム変数が存在しない場合、-1.0f が返ります。
注意: 本関数を実行する前に、ACFファイルを登録しておく必要があります。
GetGameVariableInfo(ushort, out GameVariableInfo)
ゲーム変数情報の取得(インデックス指定)
Declaration
public static bool GetGameVariableInfo(ushort index, out CriAtomEx.GameVariableInfo info)
Parameters
Type | Name | Description |
---|---|---|
ushort | index | ゲーム変数インデックス |
CriAtomEx.GameVariableInfo | info | ゲーム変数情報 |
Returns
Type | Description |
---|---|
bool | 情報が取得できたかどうか?(取得できた:true/取得できない:false) |
Remarks
説明: ゲーム変数インデックスからゲーム変数情報を取得します。 指定したインデックスのゲーム変数が存在しない場合、falseが返ります。
See Also
GetNumGameVariables()
ゲーム変数の総数の取得
Declaration
public static int GetNumGameVariables()
Returns
Type | Description |
---|---|
int | ゲーム変数の総数 |
Remarks
説明: ACFファイル内に登録されているゲーム変数の総数を取得します。
注意: 本関数を実行する前に、ACFファイルを登録しておく必要があります。 ACFファイルが登録されていない場合、-1が返ります。
See Also
GetPerformanceInfo(out PerformanceInfo)
パフォーマンス情報の取得
Declaration
public static void GetPerformanceInfo(out CriAtom.PerformanceInfo pInfo)
Parameters
Type | Name | Description |
---|---|---|
CriAtom.PerformanceInfo | pInfo | パフォーマンス情報 |
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サーバーを止めてしまわないように注意してください。 一部のプラットフォームでは、ストリーミング情報を取得できません。 本関数の戻り値を確認してください。 エラーが原因でストリーミング情報を取得できなかった場合については、 エラーコールバックが発生していないかを確認してください。
GetSupportedAcfVersion(out uint, out uint)
レジスト可能バージョン情報取得
Declaration
public static void GetSupportedAcfVersion(out uint versionLow, out uint versionHigh)
Parameters
Type | Name | Description |
---|---|---|
uint | versionLow | レジスト可能下位バージョン |
uint | versionHigh | レジスト可能上位バージョン |
Remarks
説明: レジスト可能なACFのバージョン情報を取得します。 上位バージョンはライブラリビルド時点での情報のため、この値より上位のACFでも レジスト可能な場合もあります。
GetTimeMicro()
時刻の取得
Declaration
public static ulong GetTimeMicro()
Returns
Type | Description |
---|---|
ulong | 時刻(マイクロ秒単位) |
Remarks
説明: Atomライブラリ内のマスタタイマーから時刻を取得します。
See Also
Initialize(in Config, IntPtr, int)
ライブラリの初期化
Declaration
public static bool Initialize(in CriAtomEx.Config config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Config | config | 初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
bool | 初期化できたかどうか?(できた:true/できない:false) |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 Finalize() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ワーク領域を確保する方法には、以下の2通りの方法があります。 (a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。 (b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。 CriAtomEx.Config 構造体のacf_infoメンバを使用すると初期化処理内でACFデータの登録が行えます。 初期化処理内でのACFデータ登録を行う場合は、User Allocator方式でメモリ領域を確保する必要があります。 User Allocator方式を用いる場合、ユーザはライブラリにメモリ確保関数を登録しておきます。 workにnull、work_sizeに0を指定して本関数を呼び出すことで、 ライブラリは登録済みのメモリ確保関数を使用して必要なメモリを自動的に確保します。 ユーザがワーク領域を用意する必要はありません。 初期化時に確保されたメモリは、終了処理時( Finalize() 関数実行時)に解放されます。 Fixed Memory方式を用いる場合、ワーク領域として別途確保済みのメモリ領域を本関数に 設定する必要があります。 ワーク領域のサイズは CalculateWorkSize(in Config) 関数で取得可能です。 初期化処理の前に CalculateWorkSize(in Config) 関数で取得したサイズ分のメモリを予め 確保しておき、本関数に設定してください。 尚、Fixed Memory方式を用いた場合、ワーク領域はライブラリの終了処理( Finalize() 関数) を行うまでの間、ライブラリ内で利用され続けます。 ライブラリの終了処理を行う前に、ワーク領域のメモリを解放しないでください。
例: 【User Allocator方式によるライブラリの初期化】 User Allocator方式を用いる場合、ライブラリの初期化/終了の手順は以下の通りです。 -# 初期化処理実行前に、 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を用いてメモリ確保/解放関数を登録する。 -# 初期化用コンフィグ構造体にパラメーターをセットする。 -# Initialize(in Config, IntPtr, int) 関数で初期化処理を行う。 (workにはnull、work_sizeには0を指定する。) -# アプリケーション終了時に Finalize() 関数で終了処理を行う。
【Fixed Memory方式によるライブラリの初期化】 Fixed Memory方式を用いる場合、ライブラリの初期化/終了の手順は以下の通りです。 -# 初期化用コンフィグ構造体にパラメーターをセットする。 -# ライブラリの初期化に必要なワーク領域のサイズを、 CalculateWorkSize(in Config) 関数を使って計算する。 -# ワーク領域サイズ分のメモリを確保する。 -# Initialize(in Config, IntPtr, int) 関数で初期化処理を行う。 (workには確保したメモリのアドレスを、work_sizeにはワーク領域のサイズを指定する。) -# アプリケーション終了時に Finalize() 関数で終了処理を行う。 -# ワーク領域のメモリを解放する。
備考: ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 また、必要なワーク領域のサイズは、プラットフォームによっても異なります。 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 現状、ストリーム再生を行うかどうかに関係なく、 Atom ライブラリは必ず CRI File System ライブラリの機能を使用します。 そのため、CRI File Systemライブラリの初期化が行われていない場合、 Atom ライブラリは初期化処理時に内部で CRI File System ライブラリの初期化を行います。 Atom ライブラリが内部で CRI File System ライブラリを初期化する場合、 CRI File System の初期化パラメーターとして、 CriAtomEx.Config 構造体の fs_config パラメーターを使用します。 fs_config が null の場合、 Atom ライブラリはデフォルトパラメーター( SetDefaultConfig(out Config) メソッドの設定値)で CRI File System ライブラリを初期化します。 尚、本関数を実行する時点で、既に CRI File System ライブラリが初期化済みである場合、 本関数内では CRI File System ライブラリの初期化は行われません。 本関数を実行後、必ず対になる Finalize() 関数を実行してください。 また、 Finalize() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
InitializeANDROID(in ConfigANDROID, IntPtr, int)
ライブラリの初期化
Declaration
public static void InitializeANDROID(in CriAtomEx.ConfigANDROID config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigANDROID | config | 初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeANDROID() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeANDROID(in ConfigANDROID) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。 - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizeANDROID() 関数を実行してください。 また、 FinalizeANDROID() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
InitializeForUserPcmOutput(in ConfigForUserPcmOutput, IntPtr, int)
ユーザPCM出力用ライブラリ初期化
Declaration
public static void InitializeForUserPcmOutput(in CriAtomEx.ConfigForUserPcmOutput config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigForUserPcmOutput | config | 初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ユーザPCM出力モードでライブラリを初期化します。 本関数を使用して初期化処理を行った場合、Atomライブラリは音声出力を行いません。 ユーザは GetPcmDataFloat32(int, int, float[][]) 関数を使用してライブラリから定期的にPCMデータを取得し、 アプリケーション側で音声出力を行う必要があります。
注意: 本関数と以下の関数は併用できません。 - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) - 各プラットフォームにおけるAtomライブラリ初期化関数
See Also
InitializeIOS(in ConfigIOS, IntPtr, int)
ライブラリの初期化
Declaration
public static void InitializeIOS(in CriAtomEx.ConfigIOS config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigIOS | config | 初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeIOS() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeIOS(in ConfigIOS) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。 - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizeIOS() 関数を実行してください。 また、 FinalizeIOS() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
InitializeMACOSX(in ConfigMACOSX, IntPtr, int)
ライブラリの初期化
Declaration
public static void InitializeMACOSX(in CriAtomEx.ConfigMACOSX config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigMACOSX | config | 初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeMACOSX() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeMACOSX(in ConfigMACOSX) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。 - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) . 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizeMACOSX() 関数を実行してください。 また、 FinalizeMACOSX() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
InitializePC(in ConfigPC, IntPtr, int)
ライブラリの初期化
Declaration
public static void InitializePC(in CriAtomEx.ConfigPC config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigPC | config | 初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizePC() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizePC(in ConfigPC) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。 - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizePC() 関数を実行してください。 また、 FinalizePC() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
InitializePULSE(in ConfigPULSE, IntPtr, int)
ライブラリの初期化
Declaration
public static void InitializePULSE(in CriAtomEx.ConfigPULSE config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigPULSE | config | 初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizePULSE() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizePULSE(in ConfigPULSE) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケータを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケータ から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。 - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizePULSE() 関数を実行してください。 また、 FinalizePULSE() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
InitializeWASAPI(in ConfigWASAPI, IntPtr, int)
ライブラリの初期化
Declaration
public static void InitializeWASAPI(in CriAtomEx.ConfigWASAPI config, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigWASAPI | config | 初期化用コンフィグ構造体 |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Remarks
説明: ライブラリを初期化します。 ライブラリの機能を利用するには、必ずこの関数を実行する必要があります。 (ライブラリの機能は、本関数を実行後、 FinalizeWASAPI() 関数を実行するまでの間、 利用可能です。) ライブラリを初期化する際には、ライブラリが内部で利用するためのメモリ領域(ワーク領域) を確保する必要があります。 ライブラリが必要とするワーク領域のサイズは、初期化用コンフィグ構造体の内容に応じて 変化します。 ワーク領域サイズの計算には、 CalculateWorkSizeWASAPI(in ConfigWASAPI) 関数を使用してください。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) 引数 config の情報は、関数内でのみ参照されます。 関数を抜けた後は参照されませんので、関数実行後に config の領域を解放しても 問題ありません。
注意: 本関数は内部的に以下の関数を実行します。 - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) - Initialize(in Config, IntPtr, int) 本関数を実行する場合、上記関数を実行しないでください。 本関数を実行後、必ず対になる FinalizeWASAPI() 関数を実行してください。 また、 FinalizeWASAPI() 関数を実行するまでは、本関数を再度実行しないでください。
See Also
IsDataPlaying(IntPtr, int)
ACBオブジェクトが即時解放可能かどうかのチェック
Declaration
public static bool IsDataPlaying(IntPtr buffer, int size)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | buffer | バッファー |
int | size | バッファーサイズ |
Returns
Type | Description |
---|---|
bool | 再生中かどうか(true = 再生中のプレーヤーあり、false = 再生中のプレーヤーなし) |
Remarks
説明: SetData(IntPtr, int) 関数でセットしたバッファー領域が解放可能かどうかをチェックします。
備考: メモリ再生を行っているAtomExプレーヤーを全て停止させた場合でも、 ライブラリ内には当該メモリ領域を参照しているボイスが存在する可能性があります。 ( StopWithoutReleaseTime() 関数で停止処理を行った場合や、 ボイスの奪い取りが発生した場合、AtomExプレーヤーからボイスは切り離されますが、 ボイスが完全に停止するまでの間、データは参照される可能性があります。)
注意: 本関数を実行すると、指定したデータ領域を参照しているAtomプレーヤーの存在を 検索する処理が動作します。 そのため、本関数実行中に他スレッドでAtomプレーヤーの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。 本関数実行時にAtomプレーヤーの作成/破棄を他スレッドで行う必要がある場合、 Atomプレーヤーの作成/破棄を Lock() 関数でロックしてから実行ください。 SetData(IntPtr, int) 関数でセットしたバッファーを解放する際には、 データをセットしたプレーヤーに対し停止処理を行った後、 本関数が false を返す状態になるまで待つ必要があります。 本関数が true を返すタイミングでバッファー領域を解放した場合、 アクセス違反等の致命的な問題が発生する可能性があります。
See Also
IsEnableCalculationAisacControlFrom3dPosition()
パンタイプがパン3Dの時に、距離減衰AISACと角度AISACコントロール値を音源に反映しているか取得
Declaration
public static bool IsEnableCalculationAisacControlFrom3dPosition()
Returns
Type | Description |
---|---|
bool | 計算結果を適用している |
Remarks
説明: パンタイプがパン3Dの音源を再生する際に、3Dソースと3Dリスナーオブジェクトが 設定されているときに距離減衰AISACと角度AISACの計算結果が音源に適用されているか否かを取得します。
注意: Atomライブラリのデフォルトでは、パン3D音源に対して距離減衰AISACと角度AISACの計算結果は適用されません。 本関数はCRI Atomライブラリ Ver.2.17.19 以前の動作との互換の為に追加されました。
See Also
IsInitializationSucceededIOS()
サウンドの初期化に成功したか否か
Declaration
Returns
Type | Description |
---|---|
bool |
Remarks
説明: サウンドライブラリの初期化に成功したか否かを返す関数です。 iOSでは、アプリがバックグラウンドにある状態でサウンドライブラリの初期化を行った場合に 内部的にAudioSessionの初期化等に失敗している場合があります。 本関数で初期化が失敗していることを確認した場合は、アプリがフォアグラウンドにある状態で 再度ライブラリの初期化を行うか、 RecoverSoundIOS() を用いて サウンドの復旧を行う必要があります。
IsInitialized()
ライブラリ初期化状態の取得
Declaration
public static bool IsInitialized()
Returns
Type | Description |
---|---|
bool | 初期化中かどうか |
Remarks
説明: ライブラリが既に初期化されているかどうかをチェックします。
See Also
IsInterruptedOtherAudioIOS()
割り込みフラグの取得
Declaration
Returns
Type | Description |
---|---|
bool |
Remarks
説明: 外部要因によって音声の割り込みが発生し、Atomライブラリの音声が停止している場合trueが返ります。 CriAtomEx.ConfigIOS::use_handling_os_notificationsがtrueで初期化されている場合、 Atomライブラリの音声を自動復帰します。自動復帰が完了するとfalseが返ります。 EnableBackgroundPlaybackIOS()でバックグラウンド再生を有効にしている場合、 自動復帰は無効になります。音声を復帰させる場合はResumeAudioIOS()を呼び出して音声を再開してください。
Lock()
サーバー処理の割り込みを防止
Declaration
public static void Lock()
Remarks
説明: サーバー処理の割り込み抑止します。 本関数実行後、Unlock() 関数実行までの間、サーバー処理の動作が抑止されます。 複数のAPIを同一オーディオフレーム内で確実に実行したい場合には、本関数でサーバー処理の 割り込みを防止し、それらの関数を実行してください。
注意: 割り込み防止区間で同時に複数のプレーヤーの再生をスタートした場合でも、 以下の要因により再生する波形がサンプル単位で同期しない場合があります。 - ストリーム再生時のデータ供給に伴う発音遅延 - 発音リソースの奪い取りに伴う発音遅延 再生同期を行いたい場合は、Prepare() 関数を使用して再生準備を行い、 準備完了後に割り込み防止区間で再生を開始してください。 本関数実行後、長時間Unlock() 関数を呼ばない場合、音声再生が途切れる恐れがあります。 サーバー処理の割り込みを防止する区間は、最小限に抑える必要があります。
See Also
PauseTimer(NativeBool)
タイマーのポーズ
Declaration
public static void PauseTimer(NativeBool sw)
Parameters
Type | Name | Description |
---|---|---|
NativeBool | sw | true=タイマー一時停止、false=タイマー再開 |
Remarks
説明: Atomライブラリ内のマスタタイマーを一時停止/再開します。 マスタタイマーを一時停止すると、シーケンス時刻が進行しなくなります。
備考: 本関数は アプリケーションが休止したり一時停止するようなプラットフォームにおいて、 休止中や一時停止中でもタイマーが進行してしまうプラットフォーム向けの機能です。 アプリケーションが休止状態や一時停止状態に遷移する前に 本関数でマスタタイマーを一時停止しておくことで、休止中のシーケンスの進行を止める事ができます。
注意: 本関数で一時停止する対象はあくまでAtomライブラリ内のマスタタイマーです。 本関数では発音中のボイス等を一時停止できません。 本関数で設定したポーズフラグは、CRI Atomサーバー処理が実行されたタイミングで反映されます。 即座に同期をとる必要がある場合は、ExecuteAudioProcess() 関数を呼び出す事で同期をとることができます。 ただし、ExecuteAudioProcess()を呼び出したスレッドでオーディオ処理が実行されるため、 そのCPU負荷を許容できるかに注意してください。
See Also
RecoverSoundIOS()
サウンドの復旧
Declaration
Remarks
説明: AudioSessionAddPropertyListener Callback関数から呼び出すための関数です。 ライブラリ内部のボイスを復旧します。 iOSのデーモンであるmediaserverdが死亡した際には、ライブラリ内のボイスが無効なボイスになり、 再生成が必要になります。 このように、ボイスの復旧が必要な際に呼び出してください。
RegisterAcfData(IntPtr, int, IntPtr, int)
オンメモリACFデータの登録
Declaration
public static bool RegisterAcfData(IntPtr acfData, int acfDataSize, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | acfData | ACFデータアドレス |
int | acfDataSize | ACFデータサイズ |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
bool | データの登録に成功したか |
Remarks
説明: メモリ上に配置されたACFデータをライブラリに取り込みます。 ACF情報の登録に必要なワーク領域のサイズは、 CalculateWorkSizeForRegisterAcfData(IntPtr, int) 関数で計算します。 ACFファイルの登録に成功すると、本関数は戻り値として true を返します。 データ不正などの理由等によりACFファイルの読み込みに失敗した場合、本関数は戻り値 としてfalse を返します。
備考: SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。)
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数は、関数実行時に再生中の音声をすべて停止します。 また、プレーヤーに設定した以下のACFに関連するパラメーターを全てリセットします。 -# AISAC -# AISACコントロール値 -# カテゴリ -# セレクターラベル -# バスセンド 本関数にセットしたデータ領域とワーク領域は、 UnregisterAcf() 関数を実行するまでの間、 アプリケーションで保持する必要があります。 ( UnregisterAcf() 関数実行前に、ワーク領域のメモリを解放しないでください。) また、データ領域の一部はワークとして使用されます。
See Also
RegisterAcfData(ReadOnlySpan<byte>)
Declaration
public static void RegisterAcfData(ReadOnlySpan<byte> data)
Parameters
Type | Name | Description |
---|---|---|
ReadOnlySpan<byte> | data |
RegisterAcfFile(CriFsBinder, ArgString, IntPtr, int)
ACFファイルの登録
Declaration
public static bool RegisterAcfFile(CriFsBinder binder, ArgString path, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ArgString | path | ファイルパス |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
bool | ファイル読み込み結果 |
Remarks
説明: ACFファイルをロードし、ライブラリに取り込みます。 SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドを使用してアロケーターを登録済みの場合、 本関数にワーク領域を指定する必要はありません。 ( work に null 、 work_size に 0 を指定することで、登録済みのアロケーター から必要なワーク領域サイズ分のメモリが動的に確保されます。) ワーク領域を指定して本関数を使用する場合、 CalculateWorkSizeForRegisterAcfFile(CriFsBinder, ArgString) 関数 を使用してワークサイズを計算してください。 ACFファイルの登録に成功すると、本関数は戻り値として true を返します。 リードエラー等によりACFファイルの読み込みに失敗した場合、本関数は戻り値として false を返します。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。 本関数は、関数実行時に再生中の音声をすべて停止します。 また、プレーヤーに設定した以下のACFに関連するパラメーターを全てリセットします。 -# AISAC -# AISACコントロール値 -# カテゴリ -# セレクターラベル -# バスセンド SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドによるアロケーター登録を行わずに CalculateWorkSizeForRegisterAcfFile(CriFsBinder, ArgString) 関数によって計算したワークサイズ分の ワーク領域を指定した本関数の呼び出しでfalseが返された場合、ワーク領域不足が要因 の可能性があります。 ライブラリ初期化時に指定する CriAtomEx.Config 構造体の以下のメンバの設定値 が適切であるか確認してください。 - max_categories:ACF内のカテゴリ数、REACT数と同値以上 - categories_per_playback:ACF内の再生単位でのカテゴリ参照数と同値以上 本関数にセットしたワーク領域は、 UnregisterAcf() 関数を実行するまでの間、 アプリケーションで保持する必要があります。 ( UnregisterAcf() 関数実行前に、ワーク領域のメモリを解放しないでください。)
See Also
RegisterAcfFileById(CriFsBinder, ushort, IntPtr, int)
ACFファイルの登録(CPKコンテンツID指定)
Declaration
public static bool RegisterAcfFileById(CriFsBinder binder, ushort id, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ushort | id | CPKコンテンツID |
IntPtr | work | ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
bool | ファイル読み込み結果 |
Remarks
説明: ACFファイルをロードし、ライブラリに取り込みます。 ファイルパスの代わりにCPKコンテンツIDを指定する点を除けば、 RegisterAcfFile(CriFsBinder, ArgString, IntPtr, int) 関数と機能は同じです。
備考: データがCPKにパックされていない場合、引数binderにはnullを指定してください。
注意: 本関数は、関数実行時に再生中の音声をすべて停止します。 また、プレーヤーに設定したパラメーターを全てリセットします。
See Also
ResetPerformanceMonitor()
パフォーマンスモニターのリセット
Declaration
public static void ResetPerformanceMonitor()
Remarks
説明: 現在までの計測結果を破棄します。 パフォーマンスモニターは、 AttachPerformanceMonitor() 関数実行直後 からパフォーマンス情報の取得を開始し、計測結果を累積します。 以前の計測結果を以降の計測結果に含めたくない場合には、 本関数を実行し、累積された計測結果を一旦破棄する必要があります。
ResetTimer()
タイマーのリセット
Declaration
public static void ResetTimer()
Remarks
説明: Atomライブラリ内のマスタタイマーの時刻をリセットします。
備考: 本関数は GetTimeMicro() 関数が返す値に対してのみ影響します。 本関数を実行しても、AtomExプレーヤーの再生時刻がクリアされることはありません。
See Also
ResumeAudioIOS()
音声の再開
Declaration
Remarks
説明: バックグラウンド再生有効時に音声が停止した際、音声を復帰させます。 IsInterruptedOtherAudioIOS()がtrueを返すタイミングのみ効果があります。
SetAcfConsistencyCheckErrorLevel(Level)
ACF整合性チェックエラーレベルの設定
Declaration
public static void SetAcfConsistencyCheckErrorLevel(CriErr.Level level)
Parameters
Type | Name | Description |
---|---|---|
CriErr.Level | level | エラーレベル |
Remarks
説明: ACBロード時のACFとの整合性チェックで発生するエラーの通知レベルを設定します。 デフォルト状態での通知レベルは Warning です。
SetChannelMapping(int, uint)
チャンネルマッピングパターンの指定
Declaration
public static void SetChannelMapping(int nch, uint type)
Parameters
Type | Name | Description |
---|---|---|
int | nch | マッピングパターンを変更するチャンネル数 |
uint | type | マッピングパターン |
Remarks
説明: 音声データの各チャンネルと出力スピーカーの対応付けを変更します。 例えば、5ch音声データを再生した場合、デフォルト状態では各チャンネルが L, R, C, Ls, Rs の順で出力されます。 これに対し、SetChannelMapping(int, uint)(5, 1); を実行した場合、 5ch音声データの各チャンネルが L, R, LFE, Ls, Rs の順で出力されるようになります。
備考: 現状、本関数は5ch音声データのマッピングパターン変更にしか対応していません。
SetConfigForWorkSizeCalculation(in Config)
ワーク領域サイズ計算用コンフィグ構造体の設定
Declaration
public static void SetConfigForWorkSizeCalculation(in CriAtomEx.Config config)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Config | config | 初期化用コンフィグ構造体 |
Remarks
説明: ワーク領域サイズの計算用に、ライブラリ初期化用コンフィグ構造体 ( CriAtomEx.Config 構造体)を仮登録します。 ACFの登録やボイスプールの作成に必要なワーク領域のサイズは、 ライブラリ初期化時( Initialize(in Config, IntPtr, int) 関数実行時) に設定する構造体のパラメーターによって変化します。 そのため、通常はACFの登録やボイスプールの作成に必要なワーク領域サイズを計算する前に、 ライブラリを初期化する必要があります。 本関数を使用してライブラリ初期化用コンフィグ構造体を登録した場合、 ACFの登録やボイスプールの作成に必要なワーク領域のサイズを、 初期化処理なしに計算可能になります。 本関数を実行することで、以下の処理が初期化処理なしに実行可能となります。 - CalculateWorkSizeForRegisterAcfData(IntPtr, int) 関数 - ボイスプール作成用ワーク領域サイズの計算 ( CalculateWorkSizeForStandardVoicePool(in StandardVoicePoolConfig) 関数等)
備考: 引数( config )に null を指定した場合、デフォルト設定 ( SetDefaultConfig(out Config) 適用時と同じパラメーター)で ワーク領域サイズを計算します。 現状、本関数で一旦コンフィグ構造体を設定すると、 設定前の状態(未初期化状態でのワーク領域サイズ計算をエラーとする動作) に戻すことができなくなります。 (関数を再度実行してパラメーターを上書きすることは可能です。)
注意: 本関数で登録した初期化用コンフィグ構造体は、 ライブラリ未初期化状態でのワーク領域サイズ計算にしか使用されません。 ライブラリ初期化後には本関数に設定したパラメーターではなく、 初期化時に指定されたパラメーターがワーク領域サイズの計算に使用されます。 (本関数で登録する構造体のパラメーターと、 ライブラリの初期化に使用する構造体のパラメーターが異なる場合、 ワーク領域サイズが不足し、オブジェクトの作成に失敗する恐れがあります。) RegisterAcfFile(CriFsBinder, ArgString, IntPtr, int) 関数や LoadAcbFile(CriFsBinder, ArgString, CriFsBinder, ArgString, IntPtr, int) 関数等、 ワーク領域計算時にファイルアクセスが必要になる API については、 本関数を実行した場合でもワーク領域サイズの計算が行えません。 (ワーク領域サイズを計算するためにはライブラリを初期化する必要が あります。)
See Also
SetCueLinkCallback(delegate* unmanaged[Cdecl]<IntPtr, CueLinkInfo*, int>, IntPtr)
キューリンクコールバック関数の登録
Declaration
public static void SetCueLinkCallback(delegate* unmanaged[Cdecl]<IntPtr, CriAtomEx.CueLinkInfo*, int> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, CueLinkInfo*, int> | func | キューリンクコールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: キュー再生時にキューリンクを処理した際に、キューリンク情報を受け取るコールバック関数を登録します。
注意: 登録されたコールバック関数は、ライブラリ内でキューリンクを処理したタイミングで実行されます。 そのため、ライブラリ処理への割り込みを考慮しないAPIを実行した場合、 エラーが発生したり、デッドロックが発生する可能性があります。 基本的に、コールバック関数内ではAtomライブラリAPIを使用しないでください。 本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。 コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
See Also
SetDefaultConfig(out Config)
ライブラリ初期化用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfig(out CriAtomEx.Config pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.Config | pConfig | 初期化用コンフィグ構造体へのポインタ |
Remarks
説明: Initialize(in Config, IntPtr, int) 関数に設定するコンフィグ構造体( CriAtomEx.Config )に、 デフォルトの値をセットします。
See Also
SetDefaultConfigForUserPcmOutput(out ConfigForUserPcmOutput)
ライブラリ初期化用コンフィグ構造体にデフォルト値をセット
Declaration
public static void SetDefaultConfigForUserPcmOutput(out CriAtomEx.ConfigForUserPcmOutput pConfig)
Parameters
Type | Name | Description |
---|---|---|
CriAtomEx.ConfigForUserPcmOutput | pConfig | 初期化用コンフィグ構造体へのポインタ |
Remarks
説明: InitializeForUserPcmOutput(in ConfigForUserPcmOutput, IntPtr, int) 関数に設定するコンフィグ構造体 ( CriAtomEx.ConfigForUserPcmOutput )に、デフォルトの値をセットします。
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サーバーを止めてしまわないように注意してください。
SetGameVariableById(uint, float)
ゲーム変数の設定
Declaration
public static void SetGameVariableById(uint id, float value)
Parameters
Type | Name | Description |
---|---|---|
uint | id | ゲーム変数ID |
float | value | ゲーム変数値 |
Remarks
説明: ACFファイル内に登録されているゲーム変数に値を設定します。 設定可能な範囲は0.0f~1.0fの間です。
備考: ゲーム変数の値は以下のサウンド制御において参照されます。 - スイッチキューによる再生トラックの切り替え - AISAC によるパラメーターの制御
注意: 本関数を実行する前に、ACFファイルを登録しておく必要があります。 ゲーム変数の値に同じ値を設定した際は AISAC のパラメーター更新の処理は発生しません。
SetGameVariableByName(ArgString, float)
ゲーム変数の設定
Declaration
public static void SetGameVariableByName(ArgString name, float value)
Parameters
Type | Name | Description |
---|---|---|
ArgString | name | ゲーム変数名 |
float | value | ゲーム変数値 |
Remarks
説明: ACFファイル内に登録されているゲーム変数に値を設定します。 設定可能な範囲は0.0f~1.0fの間です。
備考: ゲーム変数の値は以下のサウンド制御において参照されます。 - スイッチキューによる再生トラックの切り替え - AISAC によるパラメーターの制御
注意: 本関数を実行する前に、ACFファイルを登録しておく必要があります。 ゲーム変数の値に同じ値を設定した際は AISAC のパラメーター更新の処理は発生しません。
SetMonitoringVoiceStopCallback(delegate* unmanaged[Cdecl]<IntPtr, MonitoringVoiceStopInfo*, void>, IntPtr)
ボイス停止を監視するコールバック関数の登録
Declaration
public static void SetMonitoringVoiceStopCallback(delegate* unmanaged[Cdecl]<IntPtr, CriAtomEx.MonitoringVoiceStopInfo*, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, MonitoringVoiceStopInfo*, void> | func | ボイス停止監視コールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: ボイスの停止を監視するコールバック関数の登録をします。 本関数を実行すると、第 1 引数( func ) でセットされたコールバック関数が監視している再生ID内で発音しているボイスが停止する際に呼び出されます。 コールバック関数には、停止ボイスに関する情報が CriAtomEx.MonitoringVoiceStopInfo 構造体として渡されます。
備考: 第 2 引数( obj )にセットした値は、コールバック関数の引数として渡されます。 コールバック関数のその他の引数については、 別途 CriAtomEx.MonitoringVoiceStopCbFunc の説明をご参照ください。 SetMonitoringVoiceStopPlaybackId(CriAtomExPlayback) 関数にて設定した監視再生IDにて再生中のキューが、 以下の構造・設定を持つ場合にコールバック関数にて通知される再生IDが監視再生IDとは異なることがあります。 これは再生内部処理ににて別途再生IDが割り振られるためとなります。 - キューリンクを使用している - シーケンスタイプがトラック遷移タイプのキュー
See Also
SetMonitoringVoiceStopPlaybackId(CriAtomExPlayback)
ボイス停止を監視する再生IDの登録
Declaration
public static void SetMonitoringVoiceStopPlaybackId(CriAtomExPlayback playbackId)
Parameters
Type | Name | Description |
---|---|---|
CriAtomExPlayback | playbackId | ボイス停止を監視する再生ID |
Remarks
説明: ボイスの停止を監視する再生IDを登録をします。 監視可能な再生IDは1つだけです。 既に再生IDが設定済みの状態で本関数を呼び出した場合は、監視再生ID情報が上書きされます。 監視を行うためにはSetMonitoringVoiceStopCallback(delegate* unmanaged[Cdecl]<IntPtr, MonitoringVoiceStopInfo*, void>, IntPtr) 関数で通知を行うためのコールバック関数を登録してください。
備考: 監視再生IDにて再生中のキューのアクショントラックによる新規キューの再生が行われた場合、 この新規キューからの発音ボイスについてはボイス停止の監視対象とはなりません。 これはアクションによる再生開始が、呼び出し元キューとの依存関係を持たない状態で行われるためとなります。 このため、アクションの呼び出し元キューと呼び出し先キューの両方より発音しているボイスの停止を同時に監視することは出来ません。 アクションにて再生を開始したキュー再生IDは SetPlaybackEventCallback(delegate* unmanaged[Cdecl]<IntPtr, Event, InfoDetail*, void>, IntPtr) 関数でコールバック関数を 登録して取得出来ます。適宜、取得・設定を行ってください。
See Also
SetPlaybackCancelCallback(delegate* unmanaged[Cdecl]<IntPtr, CancelInfo*, void>, IntPtr)
プレイバックキャンセルコールバック関数の登録
Declaration
public static void SetPlaybackCancelCallback(delegate* unmanaged[Cdecl]<IntPtr, CriAtomExPlayback.CancelInfo*, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, CancelInfo*, void> | func | プレイバックキャンセルコールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: キュー再生時に再生開始処理のキャンセルが発生した際に、プレイバックキャンセル情報を受け取るコールバック関数を登録します。
注意: 登録されたコールバック関数は、ライブラリ内で再生開始処理がキャンセルされるタイミングで実行されます。 そのため、ライブラリ処理への割り込みを考慮しないAPIを実行した場合、 エラーが発生したり、デッドロックが発生する可能性があります。 基本的に、コールバック関数内ではAtomライブラリAPIを使用しないでください。 本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。 コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
See Also
SetRandomSeed(uint)
乱数種の設定
Declaration
public static void SetRandomSeed(uint seed)
Parameters
Type | Name | Description |
---|---|---|
uint | seed | 乱数種 |
Remarks
説明: CRI Atomライブラリ全体で共有する疑似乱数生成器に乱数種を設定します。 乱数種を設定することにより、各種ランダム再生処理に再現性を持たせることができます。 AtomExプレーヤーごとに再現性を持たせたい場合は、SetRandomSeed(uint) 関数を使用してください。
See Also
SetServerThreadPriorityIOS(int)
サーバスレッドプライオリティの設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Remarks
説明: CRIサーバスレッドのプライオリティを設定します。 引数 prio は pthread のプライオリティ設定値として使用します。 プライオリティ設定値はメインスレッドからの相対値になります。 アプリケーションのメインスレッド(0)よりも高いプライオリティを指定してください。 プライオリティのデフォルト値は16です。
注意: InitializeIOS(in ConfigIOS, IntPtr, int) 関数実行前に本関数を実行することはできません。 サーバ処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバ処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。
SetServerThreadPriorityMACOSX(int)
サーバスレッドプライオリティの設定
Declaration
Parameters
Type | Name | Description |
---|---|---|
int | prio | スレッドのプライオリティ |
Remarks
説明: CRIサーバスレッドのプライオリティを設定します。 引数 prio は pthread のプライオリティ設定値として使用します。 指定できる値の範囲は通常 -16~99で、数字が大きい方が優先度が高くなります。 アプリケーションのメインスレッド(0)よりも高いプライオリティを指定してください。 プライオリティのデフォルト値は10です。
注意: InitializeMACOSX(in ConfigMACOSX, IntPtr, int) 関数実行前に本関数を実行することはできません。 サーバ処理スレッドは、CRI File Systemライブラリでも利用されています。 すでにCRI File SystemライブラリのAPIでサーバ処理スレッドの設定を変更している場合 本関数により設定が上書きされますのでご注意ください。
SetSpeakerAngleArray(uint, in float)
スピーカー角度の設定
Declaration
public static void SetSpeakerAngleArray(uint speakerSystem, in float angleArray)
Parameters
Type | Name | Description |
---|---|---|
uint | speakerSystem | 出力スピーカーの並び順 |
float | angleArray | 出力スピーカーの角度配列 |
Remarks
説明: パン3Dや3Dポジショニングの計算時に使用する、出力スピーカーの角度(配置)を設定します。 角度は、正面方向を0度として-180度から180度の間で設定してください。 角度配列は、出力スピーカーの並び順のスピーカー数以上の要素数の配列を指定してください。 角度配列に null を指定すると、出力スピーカーの並び順に合わせて、デフォルトの角度を設定します。
注意: FRONT LEFTとFRONT RIGHTの位置を入れ替えるような設定をした場合、意図しない挙動になる可能性があります。
補足: LOW FREQUENCYの角度を変更しても、パン3Dや3Dポジショニングの計算結果は変化しません。 設定した角度は、各スピーカーシステムごとに独立して設定されます。
See Also
SetSpeakerAngles(float, float, float, float)
5.1chスピーカー角度の設定
Declaration
public static void SetSpeakerAngles(float angleL, float angleR, float angleSl, float angleSr)
Parameters
Type | Name | Description |
---|---|---|
float | angleL | フロントレフトスピーカーの角度 |
float | angleR | フロントライトスピーカーの角度 |
float | angleSl | サラウンドレフトスピーカーの角度 |
float | angleSr | サラウンドライトスピーカーの角度 |
Remarks
説明: パン3Dや3Dポジショニングの計算時に使用する、出力スピーカーの角度(配置)を設定します。 角度は、正面方向を0度として-180度から180度の間で設定してください。
注意: 本関数は5.1ch向けのパンスピーカータイプ (4CH または 5CH) にのみ影響します。 7.1ch向けのパンスピーカータイプ (6CH または 7CH) のスピーカー角度を変更する場合は、SetSpeakerAngleArray(uint, in float) 関数を使用してください。 設定するスピーカー角度は、angle_sl < angle_l < angle_r < angle_sr の順となるような配置にする必要があります。
See Also
SetTrackTransitionBySelectorCallback(delegate* unmanaged[Cdecl]<IntPtr, TrackTransitionBySelectorInfo*, void>, IntPtr)
トラックトランジションバイセレクターコールバック関数の登録
Declaration
public static void SetTrackTransitionBySelectorCallback(delegate* unmanaged[Cdecl]<IntPtr, CriAtomEx.TrackTransitionBySelectorInfo*, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, TrackTransitionBySelectorInfo*, void> | func | トラックトランジションバイセレクターコールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: トラックトランジションバイセレクタータイプキューの再生時にトランジション処理を行った際の情報を受け取るコールバック関数を登録します。
注意: 登録されたコールバック関数は、ライブラリ内でトランジション処理が開始されるタイミングで実行されます。 そのため、ライブラリ処理への割り込みを考慮しないAPIを実行した場合、 エラーが発生したり、デッドロックが発生する可能性があります。 基本的に、コールバック関数内ではAtomライブラリAPIを使用しないでください。 本コールバック関数内で長時間処理をブロックすると、音切れ等の問題が発生しますので、 ご注意ください。 コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。 funcにnullを指定することで登録済み関数の登録解除が行えます。
See Also
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ライブラリがワーク領域を必要とするタイミングで、 ユーザが登録したメモリ確保/解放処理が呼び出されることになります。 その結果、ワーク領域を必要とする関数( CriAtomExPlayer(in Config, IntPtr, int) 関数等)に対し、 個別にワーク領域をセットする処理を省略することが可能になります。 (ワーク領域に null ポインタ、ワーク領域サイズに 0 バイトを指定した場合でも、 アロケーターからの動的メモリ確保によりライブラリが問題なく動作するようになります。)
注意: メモリ確保/解放関数のポインタに null を指定することで、 アロケーターの登録を解除することも可能です。 ただし、未解放のメモリ領域が残っている状態で登録を解除すると、 エラーコールバックが返され、登録の解除に失敗します。 (引き続き登録済みのアロケーターが呼び出されることになります。) 本メソッドは内部的に SetUserAllocator(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) メソッドや SetUserMallocFunction(delegate* unmanaged[Cdecl]<IntPtr, uint, IntPtr>, IntPtr) 関数、 SetUserFreeFunction(delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void>, IntPtr) 関数を呼び出します。 本関数とこれらの API を併用しないようご注意ください。 (本関数の呼び出しにより、上記 API にセットした内容が上書きされます。) また、登録されたメモリアロケーター関数はマルスレッドモード時に複数のスレッドからコール されることがあります。従って、メモリアロケート処理がスレッドセーフでない場合は独自に メモリアロケート処理を排他制御する必要があります。
SetVirtualSpeakerAngleArray(uint, in float)
バーチャルスピーカー角度の設定
Declaration
public static void SetVirtualSpeakerAngleArray(uint speakerSystem, in float angleArray)
Parameters
Type | Name | Description |
---|---|---|
uint | speakerSystem | バーチャルスピーカーの並び順 |
float | angleArray | バーチャルスピーカーの角度配列 |
Remarks
説明: バーチャルスピーカーにおけるパン3Dや3Dポジショニングの計算時に使用する、 出力スピーカーの角度(配置)を設定します。 本関数の操作は SetSpeakerAngleArray(uint, in float) 関数と同様なため、基本的な説明はそちらを参照して下さい。
注意: 本関数での設定は ControlVirtualSpeakerSetting(NativeBool) 関数にてバーチャルスピーカー設定を有効にしない限り、 設定したバーチャルスピーカー角度はパン3Dや3Dポジショニングの計算に反映されません。
See Also
SetVoiceEventCallback(delegate* unmanaged[Cdecl]<IntPtr, VoiceEvent, VoiceInfoDetail*, VoiceInfoDetail*, VoiceInfoDetail*, void>, IntPtr)
ボイスイベントコールバックの登録
Declaration
public static void SetVoiceEventCallback(delegate* unmanaged[Cdecl]<IntPtr, CriAtomEx.VoiceEvent, CriAtomEx.VoiceInfoDetail*, CriAtomEx.VoiceInfoDetail*, CriAtomEx.VoiceInfoDetail*, void> func, IntPtr obj)
Parameters
Type | Name | Description |
---|---|---|
delegate* unmanaged[Cdecl]<IntPtr, VoiceEvent, VoiceInfoDetail*, VoiceInfoDetail*, VoiceInfoDetail*, void> | func | ボイスイベントコールバック関数 |
IntPtr | obj | ユーザ指定オブジェクト |
Remarks
説明: ボイスイベントコールバックを登録します。 本関数を使用してボイスイベントコールバックを登録することで、 ボイスイベント(ボイスの取得/解放/奪い取り)発生時の詳細情報 (再生/停止される音声データの詳細情報等)が取得可能です。
備考: 第 2 引数( obj )にセットした値は、コールバック関数の引数として渡されます。 コールバック関数のその他の引数については、 別途 CriAtomEx.VoiceEventCbFunc の説明をご参照ください。 funcにnullを指定することで登録済み関数の登録解除が行えます。
注意: 本関数で登録したコールバックには、ボイス単位のリミット制御 *(ボイスプライオリティに基づいた波形単位のプライオリティ制御) に関する情報のみが返されます。 (カテゴリキュープライオリティによる制御に関する情報は、現状取得できません。) コールバック関数は1つしか登録できません。 登録操作を複数回行った場合、既に登録済みのコールバック関数が、 後から登録したコールバック関数により上書きされてしまいます。
See Also
StartSoundANDROID()
サウンド処理の再開
Declaration
Remarks
説明: 本関数内ではAtomサーバスレッドのロック状態が解除されます。 また、ASRの停止を解除します。 本関数の動作保証のため、呼び出しの前には必ずcriAtom_StopSound_ANDROID関数が 呼ばれることを確認してください。
See Also
StartSoundIOS()
サウンド処理の再開
Declaration
Remarks
説明: AudioSessionのInterruption Callbak関数から呼び出すための関数です。 サウンド処理を再開します。 本関数を呼び出す前に、AudioSessionのパメラータ設定とアクティベイトを行ってください。 注意: InitializeIOS(in ConfigIOS, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
StopSoundANDROID()
サウンド処理の停止
Declaration
Remarks
説明: 本関数内ではAtomサーバスレッドをロック状態にします。 また、ASRの処理を停止します。 本関数の動作保証のため、呼び出しの後には必ずcriAtom_StartSound_ANDROID関数が 呼ばれることを確認してください。
See Also
StopSoundIOS()
サウンド処理の停止
Declaration
Remarks
説明: AudioSessionのInterruption Callbak関数から呼び出すための関数です。 サウンド処理を停止します。
注意: InitializeIOS(in ConfigIOS, IntPtr, int) 関数実行前に本関数を実行することはできません。
See Also
Unlock()
サーバー処理の割り込み防止を解除
Declaration
public static void Unlock()
Remarks
説明: Lock() 関数による、サーバー処理の割り込み防止を解除します。
See Also
UnregisterAcf()
ACFの登録解除
Declaration
public static void UnregisterAcf()
Remarks
説明: ACF情報の登録を解除します。
注意: 本関数は、関数実行時に再生中の音声をすべて停止します。 また、プレーヤーに設定したパラメーターを全てリセットします。 (ACFファイルが登録されてない際に、音声再生中に本関数を実行した場合は音声は停止されません) RegisterAcfFile(CriFsBinder, ArgString, IntPtr, int) 関数実行前に本関数を実行することはできません。