リソース(APL for Audio)
リソースとは、データバインディングと値の解決を通じてアクセスできる名前付きエンティティです。リソースは、APL for Audioドキュメント内のブロックで定義します。environmentプロパティ内の値に基づいて、条件付きリソースを作成できます。
リソースブロック
リソースはAPLドキュメントの読み込み時に評価されます。ドキュメントがコンポーネントのインフレートを開始すると、リソースは静的になり、変更できなくなります。
以下は、fixedVolumeという数値の変数に、ユーザーのデバイスが画面付きかキャラクターディスプレイかに応じた値を設定するリソース定義の例です。
{
"resources": [
{
"number": {
"fixedVolume": 0.5
},
"boolean": {
"isHeadless": "${!environment.aplVersion && !environment.apltVersion}"
}
},
{
"when": "${@isHeadless}",
"number": {
"fixedVolume": 1.0
}
}
]
}
この例には2つのリソースブロックがあります。1つ目のブロックでは、fixedVolumeにデフォルト値(0.5)を設定し、isHeadlessにユーザーのデバイスが画面付きかどうかを表すブール値を設定します。isHeadless変数は、デバイスに画面またはキャラクターディスプレイがある場合はfalse、デバイスがディスプレイのないスピーカーの場合はtrueになります。
2つ目のブロックでは、isHeadlessがtrueの場合に再度fixedVolumeを設定します。このブロックの結果は、元のfixedVolumeの値をオーバーライドします。
ドキュメントでリソースを使用するには、@構文を使用します。次の例は、fixedVolumeリソースを使用するVolumeを含むAudioコンポーネントを示しています。
{
"type": "Audio",
"source": "soundbank://soundlibrary/water/nature/nature_08"
"filter": [
{
"type": "Volume",
"amount": "@fixedVolume"
}
],
}
上の例では、デバイスに画面もキャラクターディスプレイもない場合、Volumeフィルターのamountは1.0に設定されます。デバイスに画面またはキャラクターディスプレイがある場合、Volumeフィルターのamountプロパティは0.5に設定されます。
以下は、ドキュメント全体の例を示しています。この例では、使用される音量設定を示すSpeechが追加されます。オーディオサンドボックスは画面のないデバイスと見なされるため、オーディオサウンドの音量は大きい方の値に設定されることに注意してください。
リソースのプロパティ
リソースは、APLドキュメントのresourcesプロパティで定義します。resourcesプロパティには、リソースブロックの配列を指定します。各ブロックは、オプションのwhen句と、型のセットを含むオブジェクトです。
以下の表は、リソースブロックのプロパティを示しています。
| プロパティ | 型 | 必須 | 説明 |
|---|---|---|---|
boolean、booleans |
ブール値のマップ | × | ブール値の名前をブール値にマッピングします。 |
description |
文字列 | × | リソースブロックの説明です。 |
number、numbers |
数値のマップ | × | 名前を数値にマッピングします。 |
string、strings |
文字列のマップ | × | 名前を文字列にマッピングします。 |
when |
ブール値 | × | trueの場合、このリソースブロックの定義が有効になります。デフォルトはtrueです。 |
リソースブロックは配列順に処理されます。後のブロックで定義されたリソースは、前に定義された同じ名前のリソースをオーバーライドします。
リソースブロック内では、プロパティは次の順序で評価されます。
whenbooleanbooleansnumbernumbersstringstrings
リソース定義内で、前のブロックで定義されたリソースを参照するには、@name構文を使用します。
boolean、booleans
ブール型リソースは、trueまたはfalseの値として格納されます。ブール型以外をブール型リソースに割り当てると、「truthy」ルールによって変換されます。ルールの詳細については、Truthyと強制を参照してください。
"boolean": {
"bool1": true, // true
"bool2": 23.4, // true
"bool3": "hello!", // true
"bool4": false, // false
"bool5": 0, // false
"bool6": "" // false
}
number、numbers
数値のリソースは、倍精度浮動小数点数値として格納されます。
数値以外の値から数値への変換方法の詳細については、数値の強制を参照してください。
"numbers": {
"myNum1": null, // 0
"myNum2": false, // 0
"myNum3": true, // 1
"myNum4": 150 // 150
"myNum5": 0.5 // 0.5
}
string、strings
文字列値は文字列として格納されます。ほかの型から文字列への変換方法の詳細については、文字列の強制を参照してください。
"strings": {
"string1": null, // ""
"string2": "", // ""
"string3": false, // "false"
"string4": 23 // "23"
}
関連トピック
最終更新日: 2025 年 11 月 26 日