Dokumentasi Steamworks
Suara Steam
API Suara Steam adalah serangkaian fungsi yang memungkinkanmu untuk merekam audio dari mikrofon pengguna. Ini bisa digunakan untuk mengimplementasikan obrolan suara atau sistem perintah suara.

Integrasi Obrolan Suara

Obrolan suara dalam game-mu dapat diimplementasikan dengan mengikuti langkah-langkah berikut ini:

  • Merekam
    Pertama-tama, panggil ISteamUser::StartVoiceRecording untuk mulai merekam dari mikrofon pengguna. Ini dapat dipanggil kapan pun pengguna menekan tombol pintas tekan-untuk-bicara, atau pada awal sesi permainan jika mikrofon selalu merekam. Tergantung dari game-mu, keduanya bisa saja diterima, tapi lebih baik memberikan opsi kepada pemain untuk memilih "selalu aktif" atau menekan tombol tekan-untuk-bicara. Biasanya, jarang ada yang mengatur default-nya ke "selalu nyala", terutama jika game-mu mendukung lebih dari empat pemain. Kemudian, ketika pemain melepas tombol pintas tekan-untuk-bicara, atau ketika sesi permainan berakhir, kamu harus memanggil ISteamUser::StopVoiceRecording untuk menghentikan perekaman.

    Jika pengguna sedang menggunakan obrolan suara tekan-untuk-bicara, kamu dapat memanggil ISteamFriends::SetInGameVoiceSpeaking ketika kamu memulai dan menghentikan perekaman untuk membisukan segala obrolan suara yang mungkin dilakukan pengguna melalui Antarmuka Teman Steam. Sebaiknya, berikan opsi kepada pemain untuk mengaktifkan/menonaktifkan fungsi ini.

    Setelah kamu mulai merekam, panggil ISteamUser::GetAvailableVoice untuk setiap frame untuk memeriksa apabila ada data suara terkompresi yang tersedia. Jika data suara tersedia, maka kamu perlu menggunakan ISteamUser::GetVoice untuk mendapatkan data audio terbaru dari mikrofon.
  • Mengirim
    Setelah kamu mendapatkan data suara, kamu dapat mengirimkannya ke pemain lain. API Suara Steam tidak menyediakan cara untuk mengirim data secara langsung, tapi kamu dapat mengirimkannya melalui perpustakaan jaringan pilihanmu. API jaringan P2P Steam adalah pilihan yang bagus untuk ini.
  • Menerima
    Ketika pengguna yang ditargetkan menerima data suara, mereka memanggil ISteamUser::DecompressVoice untuk mengubah data terkompresi kembali menjadi audio.
    Atau, kamu juga dapat menggunakan ISteamUser::GetVoiceOptimalSampleRate untuk mendapatkan laju sampel dekompresor Suara Steam sebelum memanggil ISteamUser::DecompressVoice, yang akan mengurangi penggunaan CPU, tapi suaranya mungkin akan terdengar lebih jelek.

Contoh

Steamworks API Example Application (SpaceWar) berisi contoh implementasi API Suara Steam berkualitas tinggi. Kamu dapat melihat file voicechat.cpp/h untuk kode yang relevan.

Perlu bantuan?

Kunjungi Diskusi Pengembang Steamworks untuk mencari pertanyaan yang pernah diajukan, dan mengajukan pertanyaanmu sendiri.