Documentation Steamworks
Steam Voice
L'API Steam Voice est un ensemble de fonctions qui vous permettent d'enregistrer le son provenant du microphone de l'utilisateur. Cette API peut être utilisée pour implémenter un chat vocal ou un système de commande vocale.

Intégration d'un chat vocal

Vous pouvez implémenter un chat vocal dans votre jeu en suivant les étapes ci-dessous :

  • Enregistrement
    Appelez d'abord ISteamUser::StartVoiceRecording pour commencer à enregistrer le son du micro. Cette fonction peut être appelée à chaque fois que l'utilisateur appuie sur un raccourci push-to-talk ou au début de la session de jeu si le son du micro doit toujours être enregistré. En fonction de votre jeu, l'une ou l'autre solution peut être préférable, mais l'idéal est de laisser le choix aux joueurs. Nous vous déconseillons de définir l'enregistrement comme toujours actif par défaut, et si votre jeu prend en charge plus de 4 joueurs, cette option n'est jamais recommandée. Lorsque le joueur relâche la touche d'activation ou que la session de jeu prend fin, vous devez appeler ISteamUser::StopVoiceRecording pour arrêter l'enregistrement.

    Si l'utilisateur passe par le push-to-talk pour le chat vocal, vous pouvez appeler ISteamFriends::SetInGameVoiceSpeaking lorsque vous commencez et arrêtez l'enregistrement pour couper le son de tout autre chat vocal que l'utilisateur peut avoir en cours via l'interface des contacts Steam. Idéalement, vous devez laisser aux joueurs la possibilité d'activer/désactiver cette fonctionnalité.

    Une fois l'enregistrement lancé, vous devez appeler ISteamUser::GetAvailableVoice à chaque trame afin de vérifier si des données vocales compressées sont disponibles. Si des données vocales sont disponibles, vous devez alors utiliser ISteamUser::GetVoice pour obtenir les dernières données audio du microphone.
  • Envoi
    Une fois les données vocales récupérées, vous souhaiterez probablement les envoyer aux autres joueurs. L'API Steam Voice ne fournit pas le moyen de le faire directement, mais vous pouvez exécuter cette opération via n'importe quelle bibliothèque de mise en réseau de votre choix, notamment les API de réseau pair-à-pair de Steam.
  • Réception
    Quand les utilisateurs ciblés reçoivent les données vocales, ISteamUser::DecompressVoice est appelée pour reconvertir les données compressées en données audio.
    Vous avez l'alternative d'utiliser ISteamUser::GetVoiceOptimalSampleRate pour obtenir le taux d'échantillonnage du décompresseur de Steam Voice avant d'appeler ISteamUser::DecompressVoice. Cette solution entrainera une utilisation moindre du processeur, mais le son peut être de mauvaise qualité.

Exemple :

L'Exemple d'application utilisant l'API Steamworks (Spacewar) réalise une implémentation de grande qualité de l'API Steam Voice. Vous trouverez les éléments pertinents dans les fichiers voicechat.cpp/h.

Besoin d'aide ?

Consultez les discussions des équipes de développement Steamworks pour rechercher des questions posées par d'autres et poser vos propres questions.