Class CriAtomAwb
AWBオブジェクト
Implements
Inherited Members
Namespace: CriWare
Assembly: CriWare.CriAtom.dll
Syntax
public class CriAtomAwb : IDisposable
Remarks
説明: 再生データが含まれているAWBファイルのTOC情報を示すオブジェクトです。 LoadToc(CriFsBinder, ArgString, IntPtr, int) 関数で取得します。
Fields
WorksizeForLoadfrommemory
オンメモリAWBオブジェクトの作成に必要なワーク領域サイズ
Declaration
public const int WorksizeForLoadfrommemory = 64
Field Value
Type | Description |
---|---|
int |
Remarks
説明: オンメモリAWBオブジェクトの作成に必要なワーク領域サイズです。
See Also
Properties
NativeHandle
ネイティブハンドル
Declaration
public NativeHandleIntPtr NativeHandle { get; }
Property Value
Type | Description |
---|---|
NativeHandleIntPtr |
Methods
CalculateWorkSizeForLoadToc(int)
AWBファイルのTOC情報ロード用ワーク領域サイズの計算
Declaration
public static int CalculateWorkSizeForLoadToc(int num)
Parameters
Type | Name | Description |
---|---|---|
int | num | AWBファイルに含まれるコンテンツ数 |
Returns
Type | Description |
---|---|
int | ワーク領域サイズ |
Remarks
説明: AWBファイルのTOC情報をロードするために十分なワーク領域のサイズを取得します。 ワーク領域サイズの計算に失敗すると、本関数は -1 を返します。 ワーク領域サイズの計算に失敗した理由については、エラーコールバックのメッセージで確認可能です。
注意: 本関数を実行する前に、ライブラリを初期化しておく必要があります。
See Also
Dispose()
AWBオブジェクトの解放
Declaration
public void Dispose()
Remarks
説明: AWBオブジェクトを解放します。 使い終わったAWBオブジェクトは、本関数で解放してください。 解放したAWBオブジェクトは無効なオブジェクトになるので、使用しないでください。
注意: 本関数を実行すると、指定したAWBデータを参照しているAtomプレーヤーが存在しないか、 ライブラリ内で検索処理が行われます。 そのため、本関数実行中に他スレッドでAtomプレーヤーの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。 本関数実行時にAtomプレーヤーの作成/破棄を他スレッドで行う必要がある場合、 本関数を Lock() 関数でロックしてから実行してください。 AtomExプレーヤーを使用してAWBファイルを再生する場合、 再生中に本関数でAWBオブジェクトを破棄してはいけません。 必ずAtomExプレーヤーを停止させてから本関数を実行してください。
See Also
GetAwbType()
AWBオブジェクトの種別を示す値を取得
Declaration
public CriAtomAwb.Type GetAwbType()
Returns
Type | Description |
---|---|
CriAtomAwb.Type | AWBオブジェクトの種別を示す値 |
Remarks
説明: AWBオブジェクトがTOC情報のみであるか、オンメモリAWBオブジェクトなのかを示す値を取得します。 本関数が失敗した場合はErrorを返します。
See Also
GetIdByIndex(ushort)
波形データIDの取得
Declaration
public int GetIdByIndex(ushort index)
Parameters
Type | Name | Description |
---|---|---|
ushort | index | 波形インデックス |
Returns
Type | Description |
---|---|
int | (0以上) 正常に処理が完了 |
Remarks
説明: AWBオブジェクトからindexで指定した波形データIDを取得します。
See Also
GetNumContents()
AWBオブジェクトを介してAWBファイルに含まれるコンテンツ数を取得
Declaration
public ushort GetNumContents()
Returns
Type | Description |
---|---|
ushort |
Remarks
説明: AWBオブジェクトを介してAWBファイルに含まれているコンテンツ数(波形データ数)を取得します。 コンテンツファイル数の値の有効範囲は1~65535です。 エラーが発生した場合は 0 を返します。
See Also
GetStatus()
AWBオブジェクトのステータス取得
Declaration
public CriAtomAwb.Status GetStatus()
Returns
Type | Description |
---|---|
CriAtomAwb.Status | AWBオブジェクトの状態を示す値 |
Remarks
説明: AWBオブジェクトのステータスを取得します。 本関数で取得するAWBオブジェクトのステータスは、ExecuteMain() 関数を 実行することで更新されます。
See Also
GetWaveDataInfo(int, out IntPtr, out uint)
オンメモリAWBから波形データの情報を取得
Declaration
public void GetWaveDataInfo(int id, out IntPtr waveDataStart, out uint size)
Parameters
Type | Name | Description |
---|---|---|
int | id | 波形データID |
IntPtr | waveDataStart | 波形データの先頭ポインタ(Byte) |
uint | size | 波形データのサイズ(Byte) |
Remarks
説明: オンメモリAWBからidで指定した波形データの先頭ポインタとサイズを取得します。 オンメモリAWBから波形データを再生する場合、通常はSetWaveId(CriAtomAwb, int) 関数で十分なので、そちらも参照してください。
注意: 本関数を実行する前に、AWBオブジェクトの種別をGetAwbType() 関数で確認してください。 AWBオブジェクトの種別が異なる場合、または不正なAWBオブジェクトだった場合、本関数は失敗し、エラーコールバックが発生します。 本関数が失敗した場合、出力値であるwave_data_startとsizeの値は不定です。 *
See Also
GetWaveFileInfo(int, out long, out uint)
AWBのTOC情報から波形データのファイル情報を取得
Declaration
public bool GetWaveFileInfo(int id, out long offset, out uint size)
Parameters
Type | Name | Description |
---|---|---|
int | id | 波形データID |
long | offset | 波形データのオフセット(Byte) |
uint | size | 波形データのサイズ(Byte) |
Returns
Type | Description |
---|---|
bool |
Remarks
説明: AWBオブジェクトからidで指定した波形データのファイルオフセットとサイズを取得します。 取得したオフセットとサイズは、AWBファイルから波形データを直接読み込む場合に使用します。
注意: 本関数を実行する前に、AWBオブジェクトの種別をGetAwbType() 関数で確認してください。 AWBオブジェクトの種別がTocと異なる場合、または不正なAWBオブジェクトだった場合、本関数は失敗し、エラーコールバックが発生します。 本関数が失敗した場合、出力値であるoffsetとsizeの値は不定です。
See Also
IsReadyToRelease()
AWBオブジェクトが即時解放可能かどうかのチェック
Declaration
public bool IsReadyToRelease()
Returns
Type | Description |
---|---|
bool | AWBの状態(true = 即時解放可能、false = 再生中のプレーヤーあり) |
Remarks
説明: AWBオブジェクトを即座に解放可能かどうかをチェックします。 本関数が false を返すタイミングで Dispose() 関数を実行すると、 AWBオブジェクトを参照しているプレーヤーに対する停止処理が行われます。 (ストリーム再生用のAWBオブジェクトの場合、ファイル読み込み完了を待つため、 Dispose() 関数内で長時間処理がブロックされる可能性があります。)
注意: 本関数を実行すると、指定したAWBデータを参照しているAtomプレーヤーが存在しないか、 ライブラリ内で検索処理が行われます。 そのため、本関数実行中に他スレッドでAtomプレーヤーの作成/破棄を行うと、 アクセス違反やデッドロック等の重大な不具合を誘発する恐れがあります。 本関数実行時にAtomプレーヤーの作成/破棄を他スレッドで行う必要がある場合、 本関数を Lock() 関数でロックしてから実行してください。
See Also
LoadFromMemory(IntPtr, int, IntPtr, int)
オンメモリAWBオブジェクトの作成
Declaration
public static CriAtomAwb LoadFromMemory(IntPtr awbMem, int awbMemSize, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
IntPtr | awbMem | AWBファイルを読み込んだメモリ領域へのポインタ |
int | awbMemSize | AWBファイルサイズ |
IntPtr | work | オンメモリAWB用ワーク領域へのポインタ |
int | workSize | オンメモリAWB用ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomAwb | オンメモリAWBオブジェクト |
Remarks
説明: メモリ上に読み込まれたAWBファイルイメージから、オンメモリAWBオブジェクトを作成します。 同じオンメモリAWBファイルイメージから複数のオンメモリAWBオブジェクトを作成することができます。 ワーク領域を確保する方法には、以下の2通りの方法があります。 (a) User Allocator方式:メモリの確保/解放に、ユーザが用意した関数を使用する方法。 (b) Fixed Memory方式:必要なメモリ領域を直接ライブラリに渡す方法。 User Allocator方式を用いる場合、ユーザがワーク領域を用意する必要はありません。 workにnull、work_sizeに0を指定するだけで、必要なメモリを登録済みのメモリ確保関数から確保します。 オンメモリAWBオブジェクト作成時に動的に確保されたメモリは、 オンメモリAWB破棄時( Dispose() 関数実行時)に解放されます。 Fixed Memor方式を用いる場合は、WorksizeForLoadfrommemory 関数を使って 必要なワーク領域サイズを求めてください。 ワーク領域とは異なり、awb_mem は必ずユーザの責任で管理する必要がある点には注意してください。
注意: 本関数が成功すると、 awb_memで渡されたメモリ領域をオンメモリAWBデータ用に書き換えます。 そのため、複数スレッドからWorksizeForLoadfrommemory 関数を呼び出している場合は、 排他処理によりスレッドの実行順が入れ替わる場合があります。 なお、awb_mem で指すメモリ領域は Dispose() 関数実行後に手動で解放してください。 AWBオブジェクトは内部的にバインダー( CriFsBinder )を確保します。 AWBファイルのTOC情報をロードする場合、AWBオブジェクト数分のバインダーが確保できる設定で Atomライブラリ(またはCRI File Systemライブラリ)を初期化する必要があります。
See Also
LoadToc(CriFsBinder, ArgString, IntPtr, int)
AWBファイルのTOC情報ロード(同期版)
Declaration
public static CriAtomAwb LoadToc(CriFsBinder binder, ArgString path, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ArgString | path | AWBファイル名 |
IntPtr | work | AWBファイルのTOC情報ロード用ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomAwb | AWBオブジェクト |
Remarks
説明: 音声再生の音源として使用するAWBファイルのTOC情報をロードします。 ロード完了まで本関数は復帰しませんので、シーンの切り替えや、 負荷変動が許容できるタイミングで実行してください。 ロードに成功すると、戻り値に有効なAWBオブジェクトが返りますので、 SetWaveId(CriAtomAwb, int) 関数に指定して使用してください。 使い終わったAWBオブジェクトは、Dispose() 関数で解放してください。 TOC情報のロードに失敗した場合はnullが返ります。
備考: 第三引数にnull、第四引数に0を指定して実行すると、 必要なワーク領域を関数内部で動的に確保します。 動的に確保した領域は、Dispose() 関数で解放されます。
注意: AWBオブジェクトは内部的にバインダー( CriFsBinder )、およびローダー( CriFsLoader ) を確保します。 AWBファイルのTOC情報をロードする場合、AWBオブジェクト数分のバインダー、およびローダーが 確保できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。
See Also
LoadTocAsync(CriFsBinder, ArgString, IntPtr, int)
AWBファイルのTOC情報ロード(非同期版)
Declaration
public static CriAtomAwb LoadTocAsync(CriFsBinder binder, ArgString path, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ArgString | path | AWBファイル名 |
IntPtr | work | AWBファイルのTOC情報ロード用ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomAwb | AWBオブジェクト |
Remarks
説明: 音声再生の音源として使用するAWBファイルのTOC情報をロードします。 本関数はロード要求を発行する非同期関数なので、 ロードの完了をアプリケーション側で待つ必要があります。 GetStatus() 関数でAWBオブジェクトのステータスを定期的に取得し、 ロードの完了を確認してください。 ロードの完了を待っている間はAWBオブジェクトのステータス更新のために、 定期的にExecuteMain() 関数を実行する必要があります。 ロード要求の発行に成功すると戻り値に有効なAWBオブジェクトが返ります。 ロードが正しく完了した後は、SetWaveId(CriAtomAwb, int) 関数に指定して使用してください。 使い終わったAWBオブジェクトは、Dispose() 関数で解放してください。 TOC情報のロード要求の発行に失敗した場合はnullが返ります。
備考: 第三引数にnull、第四引数に0を指定して実行すると、 必要なワーク領域を関数内部で動的に確保します。 動的に確保した領域は、Dispose() 関数で解放されます。 本関数で取得したAWBオブジェクトのステータスがエラー状態(Error)になった場合も、 Dispose() 関数で解放してください。
注意: AWBオブジェクトは内部的にバインダー( CriFsBinder )、およびローダー( CriFsLoader ) を確保します。 AWBファイルのTOC情報をロードする場合、AWBオブジェクト数分のバインダー、およびローダーが 確保できる設定でAtomライブラリ(またはCRI File Systemライブラリ)を初期化する 必要があります。
See Also
LoadTocAsyncById(CriFsBinder, ushort, IntPtr, int)
ID指定によるAWBファイルのTOC情報ロード(非同期版)
Declaration
public static CriAtomAwb LoadTocAsyncById(CriFsBinder binder, ushort id, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ushort | id | AWBファイルが格納されているCPKコンテンツID |
IntPtr | work | AWBファイルのTOC情報ロード用ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomAwb | AWBオブジェクト |
Remarks
説明: LoadTocAsync(CriFsBinder, ArgString, IntPtr, int) 関数とほぼ同様の機能を持つ関数です。 LoadTocAsync(CriFsBinder, ArgString, IntPtr, int) 関数と異なる点は、 パス指定ではなくCPK内のコンテンツID指定でAWBファイルのTOC情報をロードする点です。
See Also
LoadTocById(CriFsBinder, ushort, IntPtr, int)
ID指定によるAWBファイルのTOC情報ロード(同期版)
Declaration
public static CriAtomAwb LoadTocById(CriFsBinder binder, ushort id, IntPtr work = default, int workSize = 0)
Parameters
Type | Name | Description |
---|---|---|
CriFsBinder | binder | バインダーオブジェクト |
ushort | id | AWBファイルが格納されているCPKコンテンツID |
IntPtr | work | AWBファイルのTOC情報ロード用ワーク領域 |
int | workSize | ワーク領域サイズ |
Returns
Type | Description |
---|---|
CriAtomAwb | AWBオブジェクト |
Remarks
説明: LoadToc(CriFsBinder, ArgString, IntPtr, int) 関数とほぼ同様の機能を持つ関数です。 LoadToc(CriFsBinder, ArgString, IntPtr, int) 関数と異なる点は、 パス指定ではなくCPK内のコンテンツID指定でAWBファイルのTOC情報をロードする点です。