跳轉到主要內容
使用 Game Chat 2 將語音和文字聊天通訊新增至您的應用程式,同時尊重使用者的隱私權設定,並滿足與語音和文字聊天相關的 XBOX 主機 GDK 遊戲需求。Game Chat 2 依賴您的 GDK 遊戲提供網路傳輸。如果您正在尋找同時包含聊天音訊和傳輸的全方位解決方案,請考慮 Microsoft Azure PlayFab Party。 如需 API 特定參考的詳細資訊,請參閱 API 內容 (Game Chat 2)。
Game Chat 2 和 PlayFab Party API 使用相同的內部平台功能,無法在遊戲中平行使用。
Game Chat 2 提供下表所示的功能,用於管理遊戲的通訊。 應用程式會告知程式庫本機裝置上的使用者以及預期一起聊天的遠端裝置上的使用者。然後,應用程式會設定每位使用者之間的關係。 Game Chat 2 會從本機使用者的麥克風輪詢音訊、執行自動增益控制和語音活動偵測、對資料進行編碼,然後透過 chat_manager::start/finish_processing_data_frames 公開要傳遞至 Game Chat 2 遠端執行個體的音訊資料。 應用程式會將 game_chat_state_change 物件中包含的資料傳遞至同一物件中指定的 Game Chat 2 遠端執行個體。 收到資料後,應用程式的遠端執行個體會透過 chat_manager::process_incoming_data 將資料提交至其自己的 Game Chat 2 執行個體。Game Chat 2 會解碼傳入的資料,然後將其轉譯至本機使用者的音訊裝置。

通訊權限和隱私權

Game Chat 2 會強制執行 XBOX 服務權限和隱私權需求。沒有通訊權限的使用者不會產生音訊資料。透過隱私權設定封鎖的使用者的音訊資料不會被轉譯。

網路初始化

在初始化 Game Chat 2 程式庫之前,您不需要等待網路初始化。不過,在建立任何用來傳送/接收 Game Chat 2 封包的通訊端之前,您必須等待網路初始化。在網路初始化之前,Game Chat 2 不會產生任何要傳送的封包。如需網路初始化的詳細資訊,請參閱網路初始化和連線。

暫停/繼續

您應該透過 RegisterAppStateChangeNotification 註冊暫停和繼續事件。暫停時,您應該呼叫 chat_manager::cleanup() 來清除 Game Chat 2。此呼叫可能需要數百毫秒才能完成,因此您應該與其他暫停邏輯平行或以非同步方式進行此呼叫,以避免暫停處理常式逾時。cleanup 呼叫不需要在暫停處理常式傳回之前完成。 繼續時,一旦 cleanup 呼叫完成,您應該呼叫 chat_manager::singleton_instance().initialize(...) 來重新初始化 Game Chat 2。如果在暫停/繼續狀態變更時未呼叫 cleanup 和 initialize,而您繼續嘗試使用 Game Chat 2,將會導致遊戲當機。

從通用 Windows 平台 (UWP) 和 XBOX One ERA 到 GDK 的 API 變更

為了支援 Game Chat 2,對 API 進行了下列變更。
  • game_chat_audio_encoding_type_and_bitrate 已更新為 game_chat_audio_encoding_bitrate。
  • set_audio_encoding_type_and_bitrate 已更新為 set_audio_encoding_bitrate。
  • audio_encoding_type_and_bitrate 已更新為 audio_encoding_bitrate。
  • game_chat_communication_relationship_adjuster::privilege 已更新為指出遊戲可解決的權限問題。
  • 已新增 game_chat_communication_relationship_adjuster::privilege_check_failed。
  • 已在允許的 GDK 版本 Game Chat 2 中新增 chat_manager::set_legacy_era_uwp_compat_mode_enabled() API,以便與 UWP 和 ERA 版本的 Game Chat 2 交互操作。
  • 只有在 XGameRuntimeIsFeatureAvailable 指出 XGameRuntimeFeature::XNetworking 功能可用時,才能使用 Game Chat 2。
  • 使用者會先透過 XUserAddAsync 新增至 Microsoft Game Development Kit,然後才新增至 Game Chat 2 執行個體。
  • 音訊焦點偵測支援將在 GDK 的未來預覽版中提供。

從 UWP 和 ERA 到 GDK 的功能變更

  • 在遊戲啟動時以及繼續遊戲之後,請先等待網路初始化,然後再代表 Game Chat 2 傳送封包。Game Chat 2 會在網路初始化之前初始化。
  • 透過 RegisterAppStateChangeNotification 註冊暫停和繼續事件。暫停之後,使用 chat_manager::cleanup() 清除 Game Chat 2。繼續之後,重新初始化 Game Chat 2。如果您在暫停/繼續週期中使用它,它可能會當機。

參考 API 文件

另請參閱

API 內容 (GameChat2) 使用 Game Chat 2 C++ API 即時音訊操作 Microsoft Game Development Kit
最後修改於 2026年10月8日