CRIWARE for C#
Blazor編02. データの読み込み
本チュートリアルでは、CRIWARE for C#を利用してCRI ADX向けの独自形式データを読み込む方法を説明します。
CRI ADXの初期化
CRI ADXをプログラムで利用するには、その前準備である「初期化」が必要です。
今回の例では、既にプロジェクト内にあるProgram.cs
に追記します。
// ~~前略
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
Initialize(); // 追記
await builder.Build().RunAsync();
// 追記
void Initialize()
{
// CRIWAREのエラーをコンソールに出力
CriBaseCSharp.ErrorCallback.Event += Console.WriteLine;
// ADXを初期化
CriAtomCSharp.GetDefaultConfig(out var config);
CriAtomCSharp.Initialize(config);
}
ここで行っている初期化処理は最低限のものです。
音声を再生する場合は追加のリソース確保などが必要ですが、データのロード/解析のみであれば十分です。
ACFファイルの読み込み
Home.razor
を編集してACFのロード/解析を行うようにしてみましょう。
この例ではローカルファイルを指定してブラウザにロードし、カテゴリ情報を表示します。
@page "/"
@using CriWare
<PageTitle>CRI ADX Tutorial</PageTitle>
<!-- InputFileコンポーネントを利用してローカルファイルを指定 -->
<InputFile OnChange="OnUploadAcfAsync">Select ACF File</InputFile>
<h2>ACF Name: @acfInfo.name</h2>
<h3>Categories</h3>
<!-- ループでカテゴリ情報を取得して表としてレンダリング -->
<table class="table">
<thead><tr><th>ID</th><th>Name</th></tr></thead>
<tbody>
@for (ushort i = 0; i < acfInfo.numCategories; i++)
{
CriAtomExAcf.GetCategoryInfo(i, out var categoryInfo);
<tr><th>@categoryInfo.id</th><th>@categoryInfo.name</th></tr>
}
</tbody>
</table>
@code {
CriAtomExAcf.Info acfInfo;
private async Task OnUploadAcfAsync(InputFileChangeEventArgs args)
{
// ファイルをブラウザのファイルシステムにコピー
using var source = args.File.OpenReadStream(long.MaxValue);
using var dest = new FileStream("uploaded.acf", FileMode.Create);
await source.CopyToAsync(dest);
// コピーしたACFファイルをADXライブラリにロード
CriAtomEx.RegisterAcfFile(null, "uploaded.acf"u8);
// ACF情報を取得
CriAtomExAcf.GetAcfInfo(out acfInfo);
}
}
プログラムを実行し、Choose File
を押下してお手元のACFをロードしてください。
ACFに含まれるカテゴリ情報が表示されます。
お手元に適当なデータがない場合、CRI ADX LE for C#リポジトリのデータをご利用いただけます。

備考: 「終了」処理は?
CRIWAREでは本来、前準備である「初期化」処理に加えて、後片付けである「終了」処理をアプリ終了時に呼び出す必要があります。
しかし、Blazor WebAssemblyでアプリ終了時(タブを閉じる瞬間)に確実に処理を行わせることは難しいです。
また、Web版においてはタブを閉じることですべてのリソースをブラウザが破棄してくれるため、アプリケーション実装でリソース破棄を厳密に行う必要はありません。
このため、本チュートリアルでは「終了」処理を省略しています。
他のプラットフォームでは必要に応じて「終了」処理を行ってください。
まとめ
本チュートリアルでは、CRI ADX向けのACFファイルをロードし、その内容の一部をブラウザで表示しました。
今回表示したカテゴリ情報に限らず、CRI ADX向けの独自形式データ内には様々な情報が含まれています。
Web版ADXを利用してアプリケーションを用意すれば、各環境でのツールインストールなど無しに内容の確認が可能です。