Documentazione di Steamworks
Steam Voice
The Steam Voice API is a set of functions that allow you record audio from the user's microphone. Può essere utilizzata per implementare la chat vocale o un sistema di comandi vocali.

Integrazione della chat vocale

La chat vocale può essere implementata nel gioco seguendo questi passaggi:

  • Registrazione
    Come prima cosa, effettua la chiamata a ISteamUser::StartVoiceRecording per iniziare a registrare dal microfono degli utenti. Puoi chiamare il metodo ogni volta che l'utente preme una scorciatoia push-to-talk o all'inizio della sessione di gioco, nel caso in cui il microfono debba registrare continuamente. La scelta del momento più opportuno varia a seconda del gioco, ma fornire agli utenti entrambe le opzioni "Sempre attiva" e "Push-to-talk" è l'ideale. It's rarely a good idea to default to always-on though, and if your game supports more than 4 players then always-on is never recommended. Quando l'utente rilascia la scorciatoia push-to-talk o al termine della sessione di gioco, effettua la chiamata a ISteamUser::StopVoiceRecording per interrompere la registrazione.

    Se l'utente utilizza una chat vocale push-to-talk, puoi effettuare la chiamata a ISteamFriends::SetInGameVoiceSpeaking quando avvii e interrompi la registrazione per disattivare l'audio di qualsiasi chat vocale a cui l'utente sta partecipando tramite l'interfaccia degli amici di Steam. Ideally you would give players the option to enable/disable this functionality.

    After you start recording you should call ISteamUser::GetAvailableVoice each frame to check if there's any compressed voice data available. Se sono disponibili dati vocali, puoi ottenere quelli più recenti dal microfono con ISteamUser::GetVoice.
  • Invio
    Una volta ottenuti i dati vocali, probabilmente andranno inviati agli altri giocatori. The Steam Voice API does not provide the means of doing so directly but, this can be done with any networking library of your choice. The Steam peer-to-peer networking APIs are a great option for this.
  • Receiving
    When the target users receive the voice data, they call ISteamUser::DecompressVoice to turn the compressed data back into audio.
    Optionally you may want to use ISteamUser::GetVoiceOptimalSampleRate to get the sample rate of the Steam Voice decompressor before calling ISteamUser::DecompressVoice, this will result in lower CPU usage, but may sound worse.

Esempio

The Steamworks API Example Application (SpaceWar) has a high quality implementation of the Steam Voice API. Puoi trovare le informazioni di rilevanza nei file voicechat.cpp/h.

Hai bisogno di aiuto?

Visita le discussioni degli sviluppatori di Steamworks per cercare le domande già poste dagli altri o porne di tue.