> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# game_chat_stream_state_change

> game_chat_stream_state_change

# game\_chat\_stream\_state\_change

音频处理流事件的通用基础结构表示。

<a id="syntaxSection" />

## 语法

```cpp theme={null}
typedef struct game_chat_stream_state_change {  
    game_chat_stream_state_change_type state_change_type;  
    union  
    {  
        pre_encode_audio_stream* pre_encode_audio_stream;  
        post_decode_audio_source_stream* post_decode_audio_source_stream;  
        post_decode_audio_sink_stream* post_decode_audio_sink_stream;  
    };  
} game_chat_stream_state_change  
```

<a id="membersSection" />

### 成员

*state\_change\_type*\
类型:[game\_chat\_stream\_state\_change\_type](/reference/chat/gamechat2/enums/game_chat_stream_state_change_type)

所表示流状态更改的具体类型。使用此字段确定应从流联合体中读取哪种类型的流字段。

*pre\_encode\_audio\_stream*\
类型:[pre\_encode\_audio\_stream](/reference/chat/gamechat2/classes/pre_encode_audio_stream/pre_encode_audio_stream)\*

指向该流状态更改适用的编码前音频流的指针。

*post\_decode\_audio\_source\_stream*\
类型:[post\_decode\_audio\_source\_stream](/reference/chat/gamechat2/classes/post_decode_audio_source_stream/post_decode_audio_source_stream)\*

指向该流状态更改适用的解码后音频流的指针。

*post\_decode\_audio\_sink\_stream*\
类型:[post\_decode\_audio\_sink\_stream](/reference/chat/gamechat2/classes/post_decode_audio_sink_stream/post_decode_audio_sink_stream)\*

指向该流状态更改适用的解码后音频接收流的指针。

<a id="remarksSection" />

## 备注

此结构表示一次流状态更改,例如编码前音频流的创建。`game_chat_stream_state_change` 结构由 [chat\_manager::start\_processing\_stream\_state\_changes](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_start_processing_stream_state_changes) 方法报告。应用处理所表示的流状态更改后,应立即通过调用 [chat\_manager::finish\_processing\_stream\_state\_changes](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_finish_processing_stream_state_changes) 方法将其归还。

*state\_change\_type* 字段指示发生了何种状态更改。应用应使用此字段的值来确定该流状态更改所适用的流类型,然后从此结构的联合体中检索相应流的对应指针。

<Note>只有在调用 [chat\_manager::initialize](/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_initialize) 时启用了本地或远程音频处理,才会发生流状态更改。有关启用音频处理的更多信息,请参阅 [实时音频处理](/services/xbox-services/multiplayer/chat/game-chat2/real-time-audio-manipulation)。</Note>

<a id="array" />

### game\_chat\_stream\_state\_change\_array

`game_chat_stream_state_change_array` 类型是 `game_chat_stream_state_change` 指针的常量数组。此类型为方便使用而提供,并与 `chat_manager::start_processing_stream_state_changes` 和 `chat_manager::finish_processing_stream_state_changes` 方法一起使用。

```cpp theme={null}
typedef class game_chat_stream_state_change * const * game_chat_stream_state_change_array;
```

<a id="requirementsSection" />

## 需求

**头文件:** GameChat2.h

**支持的平台:** Windows、XBOX One 家族主机以及 XBOX Series 主机

<a id="seealsoSection" />

## 概念性文档

* [使用 Game Chat 2 C++ API](/services/xbox-services/multiplayer/chat/game-chat2/using-game-chat-2)
* [实时音频处理](/services/xbox-services/multiplayer/chat/game-chat2/real-time-audio-manipulation)

## 另请参阅

[Game Chat 2 简介](/services/xbox-services/multiplayer/chat/game-chat2/game-chat-2-intro)\
[chat\_manager](/reference/chat/gamechat2/classes/chat_manager/chat_manager)\
[GameChat2 members](/reference/chat/gamechat2/gamechat2_members)


## Related topics

- [game_chat_stream_state_change_type](/zh-CN/reference/chat/gamechat2/enums/game_chat_stream_state_change_type.md)
- [chat_manager::finish_processing_stream_state_changes](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_finish_processing_stream_state_changes.md)
- [game_chat_state_change_type](/zh-CN/reference/chat/gamechat2/enums/game_chat_state_change_type.md)
- [chat_manager::start_processing_stream_state_changes](/zh-CN/reference/chat/gamechat2/classes/chat_manager/methods/chat_manager_start_processing_stream_state_changes.md)
- [实时音频处理](/zh-CN/services/xbox-services/multiplayer/chat/game-chat2/real-time-audio-manipulation.md)
