Tài liệu Steamworks
Đàm thoại Steam
API đàm thoại Steam là nhóm các chức năng cho phép bạn thu âm thanh từ micro người dùng. API có thể dùng để triển khai đàm thoại hay hệ thống ra lệnh bằng giọng nói.

Tích hợp đàm thoại

Có thể thực hiện đàm thoại trong trò chơi bằng các bước sau:

  • Recording
    Trước tiên, gọi ISteamUser::StartVoiceRecording để bắt đầu ghi âm từ micro người dùng, có thể gọi API mỗi khi người dùng nhấn phím tắt 'ấn để nói' hoặc vào đầu phiên chơi nếu micro lúc nào cũng đang ghi âm. Ưu tiên cách nào là tùy thuộc vào trò chơi của bạn, nhưng lý tưởng nhất là cho người chơi cả hai lựa chọn là 'luôn bật' và ấn để nói'. Để mặc định 'luôn bật' hiếm khi là cách hay, và chúng tôi không khuyến nghị điều này nếu trò chơi hỗ trợ nhiều hơn bốn người chơi. Sau đó khi người chơi thả phím tắt 'ấn để nói', hoặc khi phiên chơi kết thúc, bạn nên gọi ISteamUser::StopVoiceRecording để ngừng ghi âm.

    Nếu người dùng đang sử dụng đàm thoại 'ấn để nói', bạn có thể gọi ISteamFriends::SetInGameVoiceSpeaking khi bắt đầu và khi ngừng ghi âm để tắt âm bất kỳ cuộc đàm thoại nào người dùng có thể đang thực hiện thông qua UI bạn bè Steam. Hay hơn hết là cho người dùng lựa chọn bật/tắt tính năng này.

    Sau khi bắt đầu thu âm, bạn nên gọi ISteamUser::GetAvailableVoice trên mỗi khung để kiểm tra xem có dữ liệu thoại bị nén nào không. Nếu có sẵn dữ liệu thoại, bạn cần dùng ISteamUser::GetVoice để nhận dữ liệu âm thanh mới nhất từ micro.
  • Gửi
    Khi đã có dữ liệu thoại, khả năng cao bạn sẽ muốn gửi cho người chơi khác. API đàm thoại Steam không cung cấp phương thức gửi trực tiếp, nhưng có thể thực hiện điều đó với bất kỳ mạng thư viện nào bạn chọn. API mạng lưới peer-to-peer Steam là lựa chọn tuyệt vời để làm việc này.
  • Nhận
    Khi nhận dữ liệu thoại, người dùng gọi ISteamUser::DecompressVoice để đưa dữ liệu nén về lại âm thanh.
    Bạn cũng có thể muốn dùng ISteamUser::GetVoiceOptimalSampleRate để lấy sample rate của trình nén đàm thoại Steam trước khi gọi ISteamUser::DecompressVoice, làm thế sẽ giảm mức sử dụng CPU nhưng cho ra âm thanh tệ hơn.

Ví dụ

Ví dụ ứng dụng API Steamworks (Spacewar!) cung cấp cách triển khai chất lượng cao cho API đàm thoại Steam. Bạn có thể tìm thấy các phần liên quan trong file voicechat.cpp/h.

Cần trợ giúp?

Ghé thăm thảo luận nhà phát triển Steamworks để tìm thắc mắc người khác đã hỏi, và tự mình đặt câu hỏi.