基本コンポーネントのプロパティ(APL for Audio)
コンポーネントとは、Alexaがドキュメントをインフレートするときにオーディオクリップを生成するプリミティブな要素のことです。たとえば、単純なSpeech
コンポーネントで音声に変換するテキストを定義します。Audio
コンポーネントで再生するオーディオファイルを識別します。それ以外のコンポーネントでも、さまざまな方法で音声とオーディオを組み合わせたり、配置したりできます。
プロパティ
すべてのコンポーネントは、次のプロパティをサポートしています。
プロパティ | 型 | デフォルト | 説明 |
---|---|---|---|
bind |
バインドの配列 | [] | データバインディングコンテキストに追加する式です。 |
description |
文字列 | "" | このコンポーネントの任意の説明です。 |
id |
文字列 | "" | コンポーネントに指定する固有のIDです。ほかのコンポーネントがこのコンポーネントを参照するときに使用します。 |
type |
文字列 | 必須 | コンポーネントの種類です。 |
when |
ブール値 | true | trueの場合、ドキュメントはこのコンポーネントをインフレートします。falseの場合、ドキュメントはこのコンポーネントとすべての子コンポーネントを無視します。 |
デフォルト列は、プロパティのデフォルト値を示します。すべての必須プロパティを設定する必要があります。設定しないと、コンポーネントはレンダリングされません。
bind
コンポーネントのbindプロパティは、コンポーネントとその子コンポーネントのデータバインディングコンテキストを展開します。bindプロパティでは、現在のコンテキストを展開するデータバインディングを順序付きで指定します。バインディングには順序があり、以前のバインディングの定義を、それ以降のバインディングで使用できます。
bind
プロパティの評価は、コンポーネントのwhen
プロパティとその他のプロパティとの間に行われます。
バインディング配列の各バインディングオブジェクトには、次のプロパティが含まれます。
プロパティ | 型 | デフォルト | 説明 |
---|---|---|---|
name |
文字列 | 必須 | このバインディングで使用する名前です。有効な名前を設定する必要があります。 |
value |
任意 | 必須 | このバインディングに割り当てる値です。 |
type |
任意、ブール値、文字列、数値 | any | プロパティの型です。 |
以下は、以前のバインディングの結果を以降のバインディングがどう利用できるかの例です。
{
"type": "Speech",
"bind": [
{"name":"FirstName","value":"ジャスミン"},
{"name":"LastName","value":"スミス"},
{"name":"Title","value":"博士"},
{"name":"FormalName","value":"${LastName}${Title}"}
],
"content": "${FirstName}さん、または${FormalName}のどちらでお呼びしますか?"
}
この例では、FormalName
の内容が、それより前に定義されたTitle
とLastName
の値によって決まります。最終的にこのテキストは、「ジャスミンさん、またはスミス博士のどちらでお呼びしますか?」となります。この例では仮の値を使っています。実際には、FirstName
、LastName
、Title
の値が生データ内の要素とバインドされます。
バインドされたプロパティ名を大文字にすることで、元のコンポーネントプロパティと競合しないようにしています。たとえば、"myCounter"ではなく、"MyCounter"や"MY_COUNTER"のように指定します。
description
APLドキュメント用にコンポーネントを説明する文字列です。ドキュメントのコンテキストにコンポーネントの説明を含めることで、ドキュメントが読みやすく、理解しやすくなります。説明は、コンポーネントのレンダリング結果には影響しません。
id
ドキュメントで特定のコンポーネントを参照できるように、開発者が割り当てる文字列値です。id
に指定できる有効な文字は[_a-zA-Z0-9]+です。ほかのid
と同じ値を使用してもかまいませんが、一意の値を割り当てることをお勧めします。
type
インフレートするコンポーネントを指定します。サポートされているプリミティブコンポーネントのいずれかにする必要があります。
type
プロパティは必須です。
when
trueの場合、コンポーネントをインフレートします。falseの場合、コンポーネントとすべての子コンポーネントが無視されます。
指定しない場合、when
はデフォルトのtrueになります。
APL for Audioで利用可能なコンポーネント
次のコンポーネントを利用できます。
Audioコンポーネントにフィルターを適用して、ストリーミング中にオーディオクリップを変更できます。詳細については、フィルターを参照してください。
コンポーネントの組み合わせ
複数のコンポーネントを組み合わせて使用することで、さまざまなオーディオエフェクトを作成できます。
- 複数子コンポーネントはそれぞれ、
items
プロパティを持ち、レンダリングするコンポーネントの配列を受け取ります。Mixer
は、子コンポーネントを同時に再生します。Sequencer
は、子コンポーネントを1つずつ順番に再生します。
複数子コンポーネントのプロパティを参照してください。
Selector
も、コンポーネントの配列を受け取るitems
プロパティを持ちます。Selector
は、配列のコンポーネントを1つだけレンダリングします。詳細については、Selectorを参照してください。