音声フォールバックAPIを使用して、ネットワーク品質に応じて音声を動的に優先させる。
注釈 について PublisherKit.setAudioFallbackEnabled() そして PublisherKit.getAudioFallbackEnabled() メソッドは非推奨となります。その場合は PublisherKit.Builder.publisherAudioFallbackEnabled() そして PublisherKit.Builder.subscriberAudioFallbackEnabled() メソッドに置き換えた。
Enabling and disabling audio-only fallback
パブリッシャーオーディオのフォールバックを有効にするには PublisherKit.Builder.publisherAudioFallbackEnabled() 関数を使用します。
// Enable publisher audio fallback
mPublisher = new Publisher.Builder(context)
.publisherAudioFallbackEnabled(true)
.build();
// Enable publisher audio fallback and disable subscriber audio fallback
mPublisher = new Publisher.Builder(context)
.publisherAudioFallbackEnabled(true)
.subscriberAudioFallbackEnabled(false)
.build();
// Enable subscriber audio fallback and disable publisher audio fallback
mPublisher = new Publisher.Builder(context)
.publisherAudioFallbackEnabled(false)
.subscriberAudioFallbackEnabled(true)
.build();
ストリームの全サブスクライバに対して)サブスクライバ音声フォールバックを有効/無効にするには PublisherKit.Builder.subscriberAudioFallbackEnabled() 関数を使用してください。サブスクライバーの音声フォールバックはルーティングされたセッション( ビデオ・メディア・ルーター).加入者音声フォールバックは、カメラのビデオソースを持つストリームでデフォルトで有効です(ルーティングされたセッションで)。
Audio fallback events
パブリッシャーオーディオのフォールバックが有効な場合、コールバックメソッドは PublisherKit.VideoListener は、パブリッシャーオーディオのフォールバック関連のイベントに対して呼び出されます:
PublisherKit.VideoListener.onVideoDisableWarning()- ストリームの品質が低下したとパブリッシャーが判断したときに呼び出され、品質がさらに低下した場合は動画が無効になります。PublisherKit.VideoListener.onVideoDisableWarningLifted()- パブリッシャーが、ストリームの品質が改善され、無効になっている動画が直ちに危険にさらされることはないと判断した場合に呼び出されます。PublisherKit.VideoListener.onVideoDisabled()- ストリームの品質が低下し、送信ビデオ・トランスポートが無効になったとパブリッシャが判断した場合に呼び出されます。注: 動画が無効になっても、パブリッシャはパブリッシング・クライアントの UI にパブリッシャの動画(カメラ画像など)を表示します。PublisherKit.VideoListener.onVideoEnabled()- パブリッシャーがストリームの品質が向上し、送信ビデオ・トランスポートが再有効化されたと判断したときに、理由 "quality" で呼び出される。 たとえば、以下のコードは関連イベントを処理します(独自のユーザー インターフェイス通知を提供できるようにします):
@Override
public void onVideoDisableWarning(PublisherKit publisher) {
// Custom action — for example, add custom UI notification
}
@Override
public void onVideoDisableWarningLifted(PublisherKit publisher) {
// Custom action — for example, remove custom UI notification
}
@Override
public void onVideoDisabled(PublisherKit publisher, String reason) {
// Custom action — for example, add custom UI notification
}
@Override
public void onVideoEnabled(PublisherKit subscriber, String reason) {
// Custom action — for example, remove custom UI notification
}
加入者の観点からは、以下のイベントはオーディオのフォールバックが発生したことを示す。これらのイベントは サブスクライバーの観点からは、以下のイベントは、オーディオのフォールバッ クが発生したことを示す。言い換えれば パブリッシャーとサブスクライバーのオーディオのフォールバックの違いは、パブリッシャー の場合、パブリッシングクライアントが、それ自身のストリームに基づいてオーディオ のフォールバックをトリガーする可能性がある、ということである。 そのため、追加のパブリッシャー側イベントがディスパッチされる。サブスクライバー・オーディオ フォールバックの場合、Vonage Video Media Router は加入者に影響するネットワークの劣化を評価します。どちらの場合も、パブリッシャーまたは サブスクライバーオーディオのフォールバックが発生すると、サブスクライバーイベントが常にディスパッチされ、レシーバーでオーディオのフォールバックが発生したことを示します。
オーディオのフォールバックが発生すると、コールバック・メソッドの SubscriberKit.VideoListener は、サブスクライバーのオーディオフォールバック関連のイベントに対して呼び出される:
SubscriberKit.VideoListener.onVideoDisableWarning() - ストリームの画質が劣化したと判断されたときに呼び出され、画質がさらに劣化した場合は動画が無効化される。
SubscriberKit.VideoListener.onVideoDisableWarningLifted() - ストリームの品質が、無効化されている動画が直ちに危険でない程度まで改善されたと判断された場合に呼び出される。
SubscriberKit.VideoListener.onVideoDisabled() - ストリームの品質が低下し、送信ビデオ・トランスポートが無効になったと判断された場合に呼び出されます。注:ビデオが無効になっている間も、サブスクライバはパブリッシング・クライアントの UI にサブスクライバのビデオ(カメラ画像など)を表示します。
SubscriberKit.VideoListener.onVideoEnabled() - ストリームの品質が向上し、送信ビデオトランスポートが再度有効になったと判断されたとき、理由「quality」で呼び出される。
例えば、以下のコードは関連イベントを処理します(独自のユーザーインターフェース通知を提供できるようにします):
@Override
public void onVideoDisableWarning(SubscriberKit subscriber) {
// Custom action — for example, add custom UI notification
}
@Override
public void onVideoDisableWarningLifted(SubscriberKit subscriber) {
// Custom action — for example, remove custom UI notification
}
@Override
public void onVideoDisabled(SubscriberKit subscriber, String reason) {
// Custom action — for example, add custom UI notification
}
@Override
public void onVideoEnabled(SubscriberKit subscriber, String reason) {
// Custom action — for example, remove custom UI notification
}