最大リンク帯域幅
PlanetKitは、最大リンク帯域幅を設定する機能を提供します。LINE Planetは、ネットワークの総ビットレートを最大リンク帯域幅までに制限します。ここでは、LINE Planetでビットレートを制御する方法について説明します。
対応する通話タイプ | SDKの最低バージョン |
---|---|
1対1通話、グループ通話(カンファレンス) | PlanetKit 3.3 |
アプリケーションの設定
コールセットアップ(call setup)段階で、1対1通話パラメータまたはグループ通話パラメータを構成する必要があります。そのとき、最大送信リンク帯域幅(maxSendLinkBandwidth
)と最大受信リンク帯域幅(maxRecvLinkBandwidth
)を設定すれば、PlanetKitがその値を考慮してネットワークの総ビットレートを制限します。通話タイプとユーザータイプごとにmaxSendLinkBandwidth
とmaxRecvLinkBandwidth
を設定するためのAPIは次のとおりです。
このほかにも、PlanetKitにはdefaultMaxSendLinkBandwidth
、defaultMaxRecvLinkBandwidth
という最大リンク帯域幅のデフォルト値があります。PlanetKitは、アプリケーションの設定と最大リンク帯域幅のデフォルト値のうち、最小値でリンク帯域幅を適用します。これをlocalMaxSendLinkBandwidth
およびlocalMaxRecvLinkBandwidth
と呼びます。
// Pseudocode description
localMaxSendLinkBandwidth = MIN(maxSendLinkBandwidth, defaultMaxSendLinkBandwidth)
localMaxRecvLinkBandwidth = MIN(maxRecvLinkBandwidth, defaultMaxRecvLinkBandwidth)
最終的に適用するビットレートの制限値は、通話タイプによって異なります。
1対1通話
PlanetKitは、コールセットアップ段階でローカルユーザーのlocalMaxSendLinkBandwidth
とリモートユーザー(ピア)のlocalMaxRecvLinkBandwidth
のうち最小値でビットレートを制限します。
// Pseudocode description
maxTransmitBitrate = MIN(localMaxSendLinkBandwidth, peerAttribute.localMaxRecvLinkBandwidth)
maxReceiveBitrate = MIN(localMaxRecvLinkBandwidth, peerAttribute.localMaxSendLinkBandwidth)
グループ通話
グループ通話の場合は、1対1通話とは異なり、通話参加者間の最小値ではなく、localMaxSendLinkBandwidth
とlocalMaxRecvLinkBandwidth
でビットレートを制限します。
// Pseudocode description
maxTransmitBitrate = localMaxSendLinkBandwidth
maxReceiveBitrate = localMaxRecvLinkBandwidth
最大リンク帯域幅のデフォルト値
PlanetKitが定めた最大リンク帯域幅のデフォルト値、すなわちdefaultMaxSendLinkBandwidth
とdefaultMaxRecvLinkBandwidth
とは接続したネットワークとデバイスのタイプによって異なります。
デフォルト値は下表を参照してください。defaultMaxSendLinkBandwidth
/defaultMaxRecvLinkBandwidth
の単位は、Mbpsです。
プラットフォームタイプ | Ethernet | Wi-Fi | 2G | 3G | 4G | 5G |
---|---|---|---|---|---|---|
Android, iOS | なし | 1.6/3 | 0.1/0.1 | 0.7/0.7 | 1.6/3 | 2.1/3 |
macOS, Windows | 10/10 | 4/6 | なし | なし | なし | なし |