https://a.storyblok.com/f/270183/1368x665/cf9a0b4cfb/25aug_dev-blog_client-sdk-v2351_1368x665.jpg

Sortie du Client SDK vidéo 2.35.1 : « Promises » et sélection évolutive des couches

Publié le August 20, 2026

Temps de lecture : 5 minutes

Le Client SDK de la Video API 2.35.1 est désormais disponible. Il apporte la prise en charge native des « Promises » au SDK JavaScript, une nouvelle API de sélection de couches évolutive, ainsi que des mises à jour de la plateforme pour tous les SDK pris en charge. 

La version 2.35.1 est disponible pour JavaScript (Web), iOS, Android, Linuxet Windows.

Pour consulter la liste complète des modifications, voir les notes de mise à jour complètes

Prise en charge de Promise dans le SDK JavaScript

L'écosystème JavaScript s'est depuis longtemps standardisé autour des « promises » et de « async/await », tandis que le SDK JS de la Video API reposait historiquement sur les callbacks. La version 2.35.1 comble cette lacune en ajoutant la prise en charge native des « promises » dans toutes les principales fonctions du SDK JS, tout en en conservant une compatibilité ascendante totale avec le code existant basé sur les callbacks. 

Il s'agit d'une modification sans impact sur le fonctionnement. Toutes les intégrations de type « callback » que vous utilisez actuellement continuent de fonctionner exactement comme avant. Vous pouvez migrer votre base de code vers les « promises », fonction par fonction, à votre rythme, ou continuer à utiliser les « callbacks ». 

Il existe deux cas de figure selon le type de méthode. 

Les fonctions qui renvoyaient auparavant `void` acceptent désormais un callback facultatif et renvoient une 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); 
} 

Les fonctions qui renvoyaient auparavant un objet exposent désormais une .promise() méthode : 

// 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); 
}  

Vous pouvez également exécuter des opérations en parallèle de manière propre grâce à Promise.all()

const [sub1, sub2] = await Promise.all([ 
  session.subscribe.promise(stream1, el1), 
  session.subscribe.promise(stream2, el2), 
]); 

Il n'est pas prévu pour l'instant de supprimer la prise en charge des callbacks. 

En attendant, vous pouvez consulter le guide de migration et découvrir des exemples d'applications mis à jour dans le référentiel d'exemples Web de la Video API Vonage

API de sélection de couches évolutive

La version 2.35.1 introduit une nouvelle API publique qui permet aux développeurs d'interroger par programmation et de configurer dynamiquement les paramètres de la couche SVC (Scalable Video Coding) pour les flux VP8 Simulcast et VP9 SVC. Cette API est disponible dans tous les SDK : JavaScript (Web), iOS, Android, Linux et Windows. 

La sélection automatique par défaut des couches fonctionne bien dans la plupart des cas, mais certaines situations nécessitent un contrôle explicite. Un appareil disposant d'une faible bande passante ou dont l'autonomie est limitée peut tirer profit d'une réduction du nombre de couches actives afin de diminuer la charge de travail liée à l'encodage. Une session de partage d'écran ou riche en contenu peut nécessiter de verrouiller une couche spatiale plus élevée pour garantir la netteté. Cette API facilite ces ajustements. 

Voici un petit exemple utilisant le SDK JavaScript : 

// Force L1T3 (1 spatial layer, 3 temporal layers; keeps resolution, reduces frame rate) 
await publisher.setScalabilityMode('L1T3'); 

Vous pouvez également associer la nouvelle API aux contraintes existantes des éditeurs : 

// 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'); 

L'API est conçue pour prendre en charge de manière uniforme la diffusion simultanée VP8 et le SVC VP9. 

Pour consulter la documentation complète, reportez-vous au guide « Scalable Video »

Mises à jour de la plateforme

Mise à jour WebRTC M145 pour les SDK natifs

Les SDK pour iOS, Android, Linux et Windows ont été mis à jour, passant de la version WebRTC M121 à la version M145. Cela apporte des améliorations significatives en termes de performances et de qualité, de sécurité et de conformité, ainsi que d'interopérabilité des normes, sans oublier des mises à jour des dépendances clés, notamment libvpx, Opus 1.6, BoringSSL, libyuv et libsrtp. 

Validation d'Android 17

Le SDK Android a été mis à jour pour permettre la compilation et la prise en charge du niveau d'API 37, et tous les changements de comportement d'Android 17 ont été analysés et validés : 

  • Accès au réseau local: WebRTC ICE utilise des sockets UDP/TCP brutes ; par conséquent, la nouvelle ACCESS_LOCAL_NETWORK autorisation n'est pas nécessaire. 

  • Renforcement de l'audio en arrière-plan: La gestion interne du focus audio a été mise à jour, passant de la méthode obsolète AudioManager.requestAudioFocus() vers l’API recommandée API AudioFocusRequest

  • Transparence des certificats: Tous les points de terminaison des serveurs Vonage sont déjà conformes ; aucune modification n'est nécessaire dans votre application. 

Le SDK JS a également été validé sur Chrome/Chromium et WebView sous Android 16 et 17. 

SDK iOS : passage de CocoaPods au gestionnaire de paquets Swift

CocoaPods est passera en mode « lecture seule » d'ici fin 2026, et l'écosystème iOS dans son ensemble est désormais basé sur Swift Package Manager (SPM), qui est le gestionnaire de dépendances officiellement pris en charge par Apple. À partir de la version 2.35.1, le SDK iOS est distribué exclusivement via SPM : 

Pour obtenir des instructions détaillées sur la migration depuis CocoaPods, consultez le guide de migration

Pour commencer

Prêt à passer à la version supérieure ? Voici ce que vous devez savoir. 

Installation pour JavaScript/Web : 

npm install vonage/client-sdk-video@2.35.1 

Pour les SDK natifs, consultez notre documentation pour obtenir des instructions d'installation spécifiques à chaque plateforme. 

Remarque : le SDK React Native suit chaque version du SDK natif une fois que les travaux d'intégration, de test et de validation nécessaires ont été menés à bien. 

Conclusion

La version 2.35.1 marque une avancée significative en matière d'expérience développeur. Les modèles basés sur les « promises » dans le SDK JS rendent le code asynchrone plus clair et plus facile à maintenir, l'API Scalable Layer Selection offre un contrôle précis du comportement des codecs vidéo, et la mise à jour WebRTC M145 garantit que les SDK natifs restent à la pointe des normes modernes en matière de sécurité et de performances. 

Si vous créez des expériences de vidéo riches, cette version a de quoi vous intéresser. 

Vous avez une question ou souhaitez partager ce que vous construisez ?

Restez connecté et tenez-vous au courant des dernières nouvelles, astuces et événements concernant les développeurs.

Partager:

https://a.storyblok.com/f/270183/400x400/20c99f31de/mateusz-sell.png
Mateusz SellChef de produit

Mateusz est chef de produit au sein de l'équipe Vonage Video, où il est responsable de la plateforme principale. Il est convaincu qu'une expérience développeur de qualité passe avant tout par un logiciel fiable et prévisible, et il met cette conviction en pratique dans chacune de ses décisions en matière de priorisation. En dehors du travail, il aime faire du vélo et jouer à des jeux de société.