> ## Documentation Index
> Fetch the complete documentation index at: https://docs.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

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

## 语法

```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  
```

### 成员

*state\_change\_type*\
类型:[game\_chat\_stream\_state\_change\_type](https://docs.xbox.com/zh-CN/reference/chat/gamechat2/enums/game_chat_stream_state_change_type.md)

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

*pre\_encode\_audio\_stream*\
类型:[pre\_encode\_audio\_stream](https://docs.xbox.com/zh-CN/reference/chat/gamechat2/classes/pre_encode_audio_stream/pre_encode_audio_stream.md)\*

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

*post\_decode\_audio\_source\_stream*\
类型:[post\_decode\_audio\_source\_stream](https://docs.xbox.com/zh-CN/reference/chat/gamechat2/classes/post_decode_audio_source_stream/post_decode_audio_source_stream.md)\*

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

*post\_decode\_audio\_sink\_stream*\
类型:[post\_decode\_audio\_sink\_stream](https://docs.xbox.com/zh-CN/reference/chat/gamechat2/classes/post_decode_audio_sink_stream/post_decode_audio_sink_stream.md)\*

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

## 备注

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

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

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

### 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;
```

## 需求

**头文件:** GameChat2.h

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

## 概念性文档

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

## 另请参阅

[Game Chat 2 简介](https://docs.xbox.com/zh-CN/services/xbox-services/multiplayer/chat/game-chat2/game-chat-2-intro.md)\
[chat\_manager](https://docs.xbox.com/zh-CN/reference/chat/gamechat2/classes/chat_manager/chat_manager.md)\
[GameChat2 members](https://docs.xbox.com/zh-CN/reference/chat/gamechat2/gamechat2_members.md)


## Related topics

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