Documentazione di Steamworks
Steam Voice
L'API Steam Voice è un set di funzioni che consentono di registrare l'audio dal microfono dell'utente. 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. Tuttavia, raramente è una buona idea lasciare l'opzione sempre attiva per impostazione predefinita e non è mai consigliato farlo se il gioco supporta più di 4 giocatori. 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. La scelta migliore è quella di dare ai giocatori l'opzione di abilitare e disabilitare questa funzionalità.

    Una volta avviata la registrazione, effettua la chiamata a ISteamUser::GetAvailableVoice per ogni sequenza al fine di verificare la presenza di eventuali dati vocali compressi a disposizione. 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. L'API Steam Voice non fornisce mezzi per l'invio diretto, che può però essere effettuato con qualsiasi libreria di rete. Le API della connessione peer-to-peer di Steam costituiscono un'ottima soluzione.
  • Ricezione
    Quando gli utenti destinatari ricevono i dati vocali, la chiamata a ISteamUser::DecompressVoice decomprime i dati e li trasforma nuovamente in audio.
    Facoltativamente puoi utilizzare ISteamUser::GetVoiceOptimalSampleRate per ottenere la frequenza di campionamento del decompressore di Steam Voice prima di effettuare la chiamata a ISteamUser::DecompressVoice. La chiamata consente di ottenere un utilizzo inferiore della CPU ma può peggiorare la qualità dell'audio.

Esempio

L'Esempio di applicazione dell'API di Steamworks (SpaceWar) mostra un'implementazione ad alta qualità dell'API di Steam Voice. 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.