最大リンク帯域幅
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 | なし | なし | なし | なし |