ACX_STREAM_STATE 枚举 (acxstreams.h)

ACX_STREAM_STATE介绍了 Acx Stream State 标志。

语法

typedef enum _ACX_STREAM_STATE {
  AcxStreamStateStop,
  AcxStreamStateAcquire,
  AcxStreamStatePause,
  AcxStreamStateRun,
  AcxStreamStateMaximum
} ACX_STREAM_STATE, *PACX_STREAM_STATE;

常量

 
AcxStreamStateStop
描述 Acx Stream状态已停止。
AcxStreamStateAcquire
描述正在获取的 Acx Stream状态。 此状态仅在内部使用;流将直接从 AcxStreamStateStop 转换到 AcxStreamStatePause 或从 AcxStreamStatePause 转换到 AcxStreamStateStop。
AcxStreamStatePause
将 Acx Stream状态描述为暂停状态。
AcxStreamStateRun
将 Acx Stream状态描述为正在运行。
AcxStreamStateMaximum
描述 Acx Stream状态最大值。 此值用于内部验证。

注解

AcxStream 支持不同的状态。 这些状态指示音频何时 (运行状态) 或未流动 (PAUSE 或 STOP 状态) 。

创建流并分配相应的缓冲区后,流将处于暂停状态,等待流启动。 当客户端将流置于“播放”状态时,ACX 框架将调用与流关联的所有线路,以指示流状态为“播放”。 然后,ACXPIN 将置于“播放”状态,此时数据将开始流动。

创建流并分配资源后,应用程序将对流调用 Start 以开始播放。

客户端首先预滚动缓冲区。 当客户端调用 ReleaseBuffer 时,这将转换为 AudioKSE 中的调用,该调用将调用 ACX 层,该层将在活动 ACXSTREAM 上调用 EvtAcxStreamSetRenderPacket。 属性将包括数据包索引 (从 0 开始的) ,以及一个 EOS 标志(如果适用),其中包含当前数据包中流结束的字节偏移量。

在 ACX 设备关闭和移除期间,如果存在流,则会调用 ACX SetState 回调以将所有线路的流转换为 Pause。 这是Stream实例范围。

  • AcxStreamCreate 之后,AcxStream 处于 AcxStreamStateStop 状态。
  • EvtAcxStreamPrepareHardware 成功返回后,AcxStream 将处于 AcxStreamStatePause 状态。
  • EvtAcxStreamRun 成功返回后,AcxStream 将处于 AcxStreamStateRun 状态。
  • EvtAcxStreamPause 返回后,AcxStream 将处于 AcxStreamStatePause 状态。
  • EvtAcxReleaseHardware 返回后,AcxStream 将处于 AcxStreamStop 状态。

示例

示例用法如下所示。

    ACX_STREAM_STATE    m_CurrentState;
...
    if (m_CurrentState != AcxStreamStatePause)
    {
        status = STATUS_INVALID_STATE_TRANSITION;
        return status;
    }

ACX 要求

最低 ACX 版本: 1.0

有关 ACX 版本的详细信息,请参阅 ACX 版本概述

要求

要求
Header acxstreams.h

另请参阅