Steamworks dokumentáció
Steam Hang
A Steam Hang API olyan funkciókészlet, amely lehetővé teszi hang rögzítését a felhasználó mikrofonjából. Ez használható hangcsevegés vagy hangutasítási rendszer megvalósítására.

Hangcsevegés-integráció

A hangcsevegés a következő lépésekkel valósítható meg a játékodban:

  • Rögzítés
    Először hívd meg az ISteamUser::StartVoiceRecording-ot, hogy megkezdd a felhasználó mikrofonjának rögzítését. Ezt kell meghívni, valahányszor a felhasználó megnyomja az adásgombot, vagy a játékmenet elején, ha a mikrofonnak mindig rögzítenie kell. A játékodtól függően bármelyik lehet a jobb, de az ideális az, ha mindig megadod a lehetőséget a játékosnak az adásgomb módra és a nyílt mikrofonra is. Azonban ritkán jó ötlet alapértelmezetten a nyílt mikrofon használata, és ha a játékod négynél több játékost támogat, akkor soha nem ajánlott a nyílt mikrofon. Majd amikor a játékos felengedi az adásgomb gyorsbillentyűjét, vagy a játékmenet véget ér, hívd meg az ISteamUser::StopVoiceRecording-ot a rögzítés leállításához.

    Ha a felhasználó adásgombos hangcsevegést használ, a rögzítés kezdetén és végén meg tudod hívni az ISteamFriends::SetInGameVoiceSpeaking-et bármilyen hangcsevegés némítására, amit a felhasználó esetleg a Steam Barátok kezelőfelületen keresztül folytat. Ideális esetben lehetőséget kellene adnod a játékosoknak e működés be-/kikapcsolására.

    A rögzítés megkezdése után mindegyik időkeretben meg kell hívnod az ISteamUser::GetAvailableVoice-t annak ellenőrzésére, van-e elérhető tömörített hangadat. Ha elérhető hangadat, akkor az ISteamUser::GetVoice használatával kell lekérned a legújabb hangadatokat a mikrofontól.
  • Küldés
    Miután megvan a hangadat, valószínűleg el akarod küldeni azt a többi játékosnak. A Steam Hang API nem biztosít erre közvetlen funkciót, de bármely általad választott hálózati könyvtárral meg lehet tenni. A Steam pont-pont közötti hálózatkezelés API-k remek lehetőség erre.
  • Fogadás
    Amikor a célfelhasználók megkapják a hangadatokat, meghívják az ISteamUser::DecompressVoice-t a tömörített adatok hanggá visszaalakítására.
    Választhatóan használhatod az ISteamUser::GetVoiceOptimalSampleRate-et a Steam Hang kitömörítő mintavételi gyakoriságának lekéréséhez, mielőtt meghívod az ISteamUser::DecompressVoice-t, ami alacsonyabb CPU-használatot eredményez, de rosszabb lehet a hangminőség.

Példa

A Steamworks API példaalkalmazás (SpaceWar) tartalmazza a Steam Hang API egy magas minőségű megvalósítását. A vonatkozó részeket a voicechat.cpp/h fájlokban találod.

Segítség kell?

Keresd fel a Steamworks Developer témákat mások által feltett kérdések kereséséhez és saját kérdéseid feltételéhez.