Audio 外部オブジェクトを使用して、スマート デバイス アプリケーションのオーディオ機能を有効にすることができます。
この API は以下の目的で使用できます:
a. オーディオを再生し、ユーザーがアプリケーションを閉じても再生を継続する。
b. オーディオを再生し、アプリケーションを閉じたときは、再生を停止する。
c. 2 つのオーディオを同時に再生する。
ここでは、上記 a、b、c それぞれのケースを GeneXus で実装する方法を説明し、API の主要機能と、この機能をスマート デバイス アプリケーションで使用した例もいくつか紹介します。
この API は、
外部オブジェクトと
ドメインで構成されています。
a) を実装するには、GeneXus の
PlayBackground メソッドを使用します。このメソッドは、アプリケーションを閉じた場合でも、オーディオをバックグラウンドで再生します。
b) と c) を実装するためのメソッドは
Play です。しかし、このメソッドは、再生されるオーディオ (Audio) のほかに、もう 1 つパラメーターを受け取ります。このパラメーターは、ドメイン
AudioAPISessionType に基づいています。
このドメインには次の値を指定できます:
Solo |
オーディオが再生されている場合は停止し、Audio パラメーターで渡されたオーディオが実行されます。 |
Mix |
オーディオが再生中でも、Audio パラメーターで渡されたオーディオを再生します。 |
Background |
Audio.PlayBackground を実行する場合と似ています。 |
外部オブジェクトは下図のとおりです:
1 つのオーディオの再生に関係するメソッドは次のとおりです:
- PlayBackground(Audio, Category)
指定されたカテゴリ (Background、Mix、または Solo) でオーディオを再生します。
- PlayBackground(Audio, Description)
オーディオをバックグラウンドモードで再生し、デバイスのロック画面上にパラメーターで渡された説明 (文字) を表示します。
- Play(Audio, AudioAPISessionType)
指定されたタイプでオーディオを再生します。
- Stop
再生中のすべてのオーディオを停止します。
- Stop(Category)
指定されたセッションタイプ (Background、Mix、または Solo) のオーディオを停止します。
- IsPlaying: Boolean
ブール値を返します。オーディオが再生中は True を返します。
- IsPlaying(Category): Boolean
このメソッドは、パラメーターで渡された種類のオーディオが再生中かどうかを示すブール値を返します。
[ Audio ] パラメーターは
Audio データタイプに基づいています。
以下のイベントは、オーディオをバックグラウンドで再生します:
Event 'PlayBackground'
Audio.PlayBackground(&varAudioLong)
EndEvent
以下のイベントは、上記と同様に動作します:
Event 'PlayBackground2'
Audio.Play(&varAudio4, AudioAPISessionType.Background)
Endevent
以下のイベントは、&AudioMix と、再生中だったオーディオと一緒に実行します:
Event 'PlayMix'
Audio.Play(&varAudio4, AudioAPISessionType.Mix)
Endevent
既にバックグラウンドモードでオーディオが再生されている場合は、オーディオがミックスされます。
以下のイベントは &SoloAudio だけを実行し、再生中だったほかのオーディオは停止します:
Event 'PlaySolo'
Audio.Play(&varAudio2, AudioAPISessionType.Solo)
Endevent
バックグラウンドモードで再生中のオーディオがある場合、そのオーディオは一時停止され、Solo オプションのオーディオが終了した後で再開されます。
以下のイベントは、バックグラウンドオーディオが再生されていない場合は再生し、バックグラウンドオーディオが既に再生されている場合は、バックグラウンドオーディオを再生します: Mix オーディオを再生します:
Event 'isPlayingBackground'
Composite
&varBoolean = Audio.IsPlaying(AudioAPISessionType.Background)
if &varBoolean
Audio.Play(&varAudio4, AudioAPISessionType.Solo)
else
Audio.PlayBackground(&varAudioLong)
endif
EndComposite
Endevent
注:
- Background オプションを使用する場合は、デバイスがミュート状態であっても、オーディオが聞こえます。
- Mix オプションは、通常、短いオーディオの再生に使用されます。既存のオーディオにかぶせて聞こえることがあります。デバイスがミュート状態の場合、オーディオは聞こえません。
iOS で、アプリケーションを実行していないときでもオーディオを再生できるようにするには、追加の権限が必要です。既定では、アプリケーションを閉じると、PlayBackground() メソッドで開始された場合でもオーディオは停止されます。
iOS でバックグラウンド再生を有効にするには、
[ Background Modes ] プロパティに audio の値を追加する必要があります。