Поделиться через


перечисление 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
Описывает состояние Stream Acx как приостановленное.
AcxStreamStateRun
Описывает состояние Stream Acx как выполняющийся.
AcxStreamStateMaximum
Описывает максимальное Stream состояния Acx. Это значение используется для внутренней проверки.

Комментарии

AcxStream поддерживает различные состояния. Эти состояния указывают, когда происходит поток звука (состояние ВЫПОЛНЕНИЯ) или не выполняется (состояние PAUSE или STOP).

После создания потока и выделения соответствующих буферов поток находится в состоянии Приостановка в ожидании запуска потока. Когда клиент переводит поток в состояние воспроизведения, платформа ACX вызовет все каналы, связанные с потоком, чтобы указать, что поток находится в состоянии воспроизведения. Затем ACXPIN будет помещен в состояние Воспроизведения, после чего начнется поток данных.

После создания потока и выделения ресурсов приложение вызовет start в потоке, чтобы начать воспроизведение.

Клиент начинается с предварительного наката буфера. Когда клиент вызывает ReleaseBuffer, это преобразуется в вызов в AudioKSE, который вызовет уровень ACX, который вызовет EvtAcxStreamSetRenderPacket для активного ACXSTREAM. Свойство будет включать индекс пакета (на основе 0) и, при необходимости, флаг EOS со смещением байтов конца потока в текущем пакете.

При отключении питания и удалении устройства ACX при наличии потоков вызываются обратные вызовы SETState ACX, чтобы перевести все потоки канала в режим Приостановка. Это 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.

Требования

Требование Значение
Заголовок acxstreams.h

См. также раздел