
シェア:
マテウシュは、VonageのVideoチームでプロダクトマネージャーを務めており、コアプラットフォームを担当しています。彼は、優れた開発者体験は、信頼性が高く予測可能なソフトウェアから始まるという信念を持っており、その信念をあらゆる優先順位付けの決定に反映させています。仕事以外では、サイクリングやボードゲームを楽しんでいます。
Video Client SDK 2.35.1 リリース:Promises およびスケーラブルなレイヤー選択機能
所要時間:1 分
Video API Client SDK 2.35.1 がリリースされました。このバージョンでは、JavaScript SDK へのネイティブ Promise サポートの追加、新しいスケーラブルなレイヤー選択 API、およびサポート対象のすべての SDK におけるプラットフォームの更新が行われています。
バージョン 2.35.1 は、以下のプラットフォームで利用可能です JavaScript(Web)、 iOS、 Android, Linux、および Windows。
変更点の完全な一覧については、 リリースノートの全文をご覧ください。
JavaScript SDK における Promise のサポート
JavaScriptのエコシステムでは、かねてよりPromiseやasync/awaitが標準化されてきましたが、Video APIのJS SDKは従来、コールバックに依存していました。バージョン2.35.1では、すべての主要なJS SDK関数でネイティブなPromiseサポートが追加され、このギャップが解消されると同時に、 既存のコールバックベースのコードとの完全な下位互換性を維持しつつ を維持しています。
これは互換性を損なわない変更です。現在使用しているコールバック方式の統合機能はすべて、これまでとまったく同じように動作し続けます。コードベースを、ご自身のペースで関数ごとにPromiseへ移行することも、引き続きコールバックを使い続けることも可能です。
メソッドの種類によって、2つのパターンがあります。
以前は void を返していた関数 は、オプションのコールバックを受け取り、Promise を返すようになりました:
// Callback style (still works)
session.connect(token, function(error) {
if (error) { return handleError(error); }
session.publish(publisher, function(error) {
if (error) { return handleError(error); }
});
});
// Promise / async-await style (new in 2.35.1)
try {
await session.connect(token);
await session.publish(publisher);
} catch (error) {
handleError(error);
} 以前はオブジェクトを返していた関数 は、現在 .promise() メソッドを公開するようになりました:
// Callback style (still works)
const publisher = OT.initPublisher(targetElement, properties, function(error) {
if (error) { console.error(error); }
});
// Promise / async-await style (new in 2.35.1)
try {
const publisher = await OT.initPublisher.promise(targetElement, properties);
} catch (error) {
console.error(error);
} また、 Promise.all():
const [sub1, sub2] = await Promise.all([
session.subscribe.promise(stream1, el1),
session.subscribe.promise(stream2, el2),
]); 現時点では、コールバックのサポートを廃止する予定はありません。
それまでの間、 移行ガイド をご覧いただき、 Vonage Video API Webサンプルリポジトリから入手できます。
スケーラブルなレイヤー選択API
バージョン 2.35.1 では、開発者が VP8 サイマルキャストおよび VP9 SVC ストリームに対して、スケーラブル・ビデオ・コーディング(SVC)レイヤーの設定をプログラムで照会し、動的に構成できる新しい公開 API が導入されました。この API は、JavaScript(Web)、iOS、Android、Linux、Windows のすべての SDK で利用可能です。
デフォルトの自動レイヤー選択は、ほとんどのシナリオで問題なく機能しますが、一部のユースケースでは明示的な制御が必要になる場合があります。帯域幅が狭いデバイスやバッテリーに制約のあるデバイスでは、アクティブなレイヤーの数を減らしてエンコード負荷を軽減することで、パフォーマンスが向上する可能性があります。 画面共有やコンテンツ量の多いセッションでは、鮮明さを確保するために、より高い空間レイヤーを固定する必要がある場合があります。このAPIを使用すれば、こうした調整を簡単に行うことができます。
JavaScript SDK を使用した簡単な例を以下に示します:
// Force L1T3 (1 spatial layer, 3 temporal layers; keeps resolution, reduces frame rate)
await publisher.setScalabilityMode('L1T3'); また、新しいAPIを既存のパブリッシャー制約と組み合わせることもできます:
// 1) Initialize a publisher with 1080p
const publisher = OT.initPublisher('publisher', {
resolution: '1920x1080',
frameRate: 30,
videoContentHint: 'detail',
});
// 2) Adjust constraints after initialization
await publisher.setPreferredResolution({ width: 1920, height: 1080 });
await publisher.setPreferredFrameRate(15);
// 3) Optionally override the scalability mode
await publisher.setScalabilityMode('L1T3'); このAPIは、VP8 SimulcastとVP9 SVCを統一的に処理できるよう設計されています。
詳細なドキュメントについては、 「Scalable Video」ガイドを参照してください。
プラットフォームの更新情報
ネイティブSDK向けWebRTC M145アップグレード
iOS、Android、Linux、およびWindows向けのSDKが、WebRTC M121からM145にアップグレードされました。 これにより、パフォーマンスと品質、セキュリティとコンプライアンス、標準規格間の相互運用性が大幅に向上したほか、libvpx、Opus 1.6、BoringSSL、libyuv、libsrtp などの主要な依存ライブラリも更新されました。
Android 17 の検証
Android SDK が更新され、API レベル 37 向けのコンパイルおよびターゲット設定が可能になりました。また、Android 17 における動作の変更点についてはすべて分析および検証が完了しています:
ローカルネットワークへのアクセス: WebRTC ICEは生のUDP/TCPソケットを使用するため、新しい
ACCESS_LOCAL_NETWORK権限は不要です。
バックグラウンドオーディオの堅牢化: 内部のオーディオフォーカス処理が、非推奨となっていた
AudioManager.requestAudioFocus()から推奨される AudioFocusRequest APIに更新されました。
証明書の透明性: すべてのVonageサーバーエンドポイントはすでに準拠しており、アプリ側の変更は不要です。
また、JS SDK は Chrome/Chromium および Android 16 および 17 の WebView でも検証済みです。
iOS SDK:CocoaPods から Swift Package Manager へ
CocoaPodsは 2026年末までに読み取り専用状態に移行する予定であり ことになり、iOSエコシステム全体では、Appleが公式にサポートする依存関係管理ツールとしてSwift Package Manager(SPM)への移行が進んでいます。バージョン2.35.1以降、iOS SDKはSPM経由でのみ配布されます:
CocoaPodsからの移行手順については、 移行ガイドを参照してください。
はじめに
アップグレードの準備はできましたか?知っておくべきことをご紹介します。
JavaScript/Web 向けのインストール方法:
npm install @vonage/client-sdk-video@2.35.1ネイティブSDKについては、当社の ドキュメント で、各プラットフォームごとのインストール手順をご確認ください。
注:React Native SDKは、必要な統合、テスト、および検証作業が完了した後、各ネイティブSDKのリリースに追随して提供されます。
結論
バージョン 2.35.1 は、開発者体験の面で大きな前進となります。 JS SDKにおけるPromiseベースのパターンにより、非同期コードがよりクリーンでメンテナンスしやすくなり、スケーラブル・レイヤー・セレクションAPIによってビデオコーデックの動作をきめ細かく制御できるようになり、WebRTC M145へのアップグレードにより、ネイティブSDKが最新のセキュリティおよびパフォーマンス基準に準拠し続けることが保証されます。
充実したVideo体験を構築している方にとって、今回のリリースには役立つ機能が用意されています。
ご質問がある場合、またはあなたが作っているものを共有したい場合は、こちらをクリックしてください。
登録する 開発者ニュースレター
フォローする X(旧ツイッター)最新情報
チュートリアルを見る YouTubeチャンネル
LinkedInの LinkedIn の Vonage デベロッパーページ
開発者体験の向上にご協力ください。以下の 「開発者の声」フィードバックにご協力ください
最新の開発者向けニュース、ヒント、イベント情報をお届けします。