オーディオのフォールバック — Windows

OpenTokのオーディオフォールバックAPIを使用して、ネットワーク品質に応じてオーディオの優先順位を動的に調整します。

概念的な情報については オーディオ・フォールバックの概要.

このトピックには以下のセクションが含まれます:

音声のみのフォールバックの有効化と無効化

パブリッシャーオーディオのフォールバックを有効にするには パブリッシャー.ビルダー.パブリッシャーオーディオフォールバック プロパティを使用します。

ストリームの全サブスクライバに対して)サブスクライバ音声フォールバックを有効/無効にするには パブリッシャー.ビルダー.サブスクライバーオーディオフォールバック Publisher オブジェクトの作成時にこのプロパティを指定します。サブスクライバーのオーディオフォールバックは、ルーティングされたセッション( OpenTok メディアルーター).加入者音声フォールバックは、カメラのビデオソースを持つストリームでデフォルトで有効です(ルーティングされたセッションで)。


// Enable publisher audio fallback
Publisher = new Publisher.Builder(context)
{
  PublisherAudioFallback = true
}.Build();

// Enable publisher audio fallback and disable subscriber audio fallback
Publisher = new Publisher.Builder(context)
{
  PublisherAudioFallback = true,
  SubscriberAudioFallback = false
}.Build();

// Enable subscriber audio fallback and disable publisher audio fallback
Publisher = new Publisher.Builder(context)
{
  PublisherAudioFallback = false,
  SubscriberAudioFallback = true
}.Build();

オーディオのフォールバックイベント

パブリッシャー・オーディオ・フォールバックが有効な場合 Publisher オブジェクトはオーディオのフォールバック関連のイベントをディスパッチします:

  • Publisher.VideoDisableWarning — 配信者がストリームの画質が低下したと判断した場合に送信され、さらに画質が低下した場合は動画の再生が停止されます。
  • Publisher.VideoDisableWarningLifted — 配信者が、ストリームの品質が改善し、配信停止対象となっている動画が差し迫ったリスクではなくなったと判断した時点で送信されます。
  • Publisher.VideoDisabled - ストリームの品質が低下し、送信ビデオ・トランスポートが無効になったとパブリッシャーが判断した場合に送信されます。注:動画が無効になっても、パブリッシャはパブリッシング・クライアントのUIにパブリッシャの動画(カメラ画像など)を表示します。
  • Publisher.VideoEnabled - パブリッシャーがストリームの品質が向上し、送信ビデオ・トランスポートが再有効化されたと判断した場合に、理由が「quality」に設定されて送信される。

例えば、以下のコードは関連イベントを処理します(独自のユーザーインターフェース通知を提供できるようにします):


publisher.VideoDisableWarning += (object sender) =>
{
  // Custom action — for example, add custom UI notification
}

publisher.VideoDisableWarningLifted += (object sender) =>
{
  // Custom action — for example, remove custom UI notification
}

publisher.VideoDisabled += (object sender, VideoEventArgs e) =>
{
  // Custom action — for example, add custom UI notification
}

publisher.VideoEnabled += (object sender, VideoEventArgs e) =>
{
  // Custom action — for example, remove custom UI notification
}

サブスクライバーの観点からは、以下のイベントが発生したことで、オーディオのフォールバックが発生したことがわかります。これらのイベントはサブスクライバーに関連するものですが、サブスクライバー側のオーディオフォールバックによる場合もあれば、パブリッシャー側のオーディオフォールバックの結果として発生する場合もあります。 つまり、パブリッシャー側のオーディオフォールバックとサブスクライバー側のオーディオフォールバックの違いは、パブリッシャー側のケースでは、パブリッシングクライアントが自身のストリームの品質低下に基づいてオーディオフォールバックをトリガーする可能性がある点にあり、そのため、パブリッシャー側で追加のイベントがディスパッチされるのです。 サブスクライバー側のオーディオフォールバックの場合、Vonage Video Media Router は、サブスクライバーに影響を与えるネットワークの品質低下を評価します。いずれの場合も、パブリッシャー側またはサブスクライバー側のオーディオフォールバックが発生すると、受信側でオーディオフォールバックが発生したことを示すサブスクライバー側のイベントが常にディスパッチされます。

音声フォールバックが発生すると Subscriber オブジェクトはオーディオのフォールバック関連のイベントをディスパッチします:

  • Subscriber.VideoDisableWarning — ストリームの画質が低下したと判断された場合に送信され、さらに画質が低下した場合は動画が停止されます。
  • Subscriber.VideoDisableWarningLifted — ストリームの品質が改善し、配信停止中の動画が差し迫ったリスクとならないと判断された時点で送信されます。
  • Subscriber.VideoDisabled - ストリームの品質が低下し、送信ビデオトランスポートが無効になったと判断された場合に送信されます。注:ビデオが無効になっても、サブスクライバはパブリッシングクライアントのUIにサブスクライバのビデオ(カメラ画像など)を表示します。
  • Subscriber.VideoEnabled - ストリームの品質が向上し、送信ビデオトランスポートが再有効化されたと判断された場合に、理由を "quality "に設定して送信される。

例えば、以下のコードは関連イベントを処理します(独自のユーザーインターフェース通知を提供できるようにします):


subscriber.VideoDisableWarning += (object sender) =>
{
  // Custom action — for example, add custom UI notification
}

subscriber.VideoDisableWarningLifted += (object sender) =>
{
  // Custom action — for example, remove custom UI notification
}

subscriber.VideoDisabled += (object sender, VideoEventArgs e) =>
{
  // Custom action — for example, add custom UI notification
}

subscriber.VideoEnabled += (object sender, VideoEventArgs e) =>
{
  // Custom action — for example, remove custom UI notification
}