| Предыдущий | Следующий |
| RTC_E_SIP_STACK_SHUTDOWN | RTC_E_MEDIA_NEED_TERMINAL |
RTC_E_MEDIA_CONTROLLER_STATE
Интерпретация результата
RTC_E_MEDIA_CONTROLLER_STATE (0X80EE001F) означает: media controller находится в состоянии, несовместимом с запрошенным переходом. Значение полезно только вместе с фазой RTC/COM state machine; последующий общий network error не должен заменять первичный результат.
Английский маркер для сопоставления с исходной документацией: the requested media action is illegal in the current controller state
. Используйте его как поисковый ключ вместе с timestamp и transaction/session ID.
Что сохранить
- session ID, media type/stream index и negotiated codecs.
- terminal/device identity, hold/start state и media-controller transition.
- SDP hash, local/remote address/port и первый media HRESULT.
Код-специфическая проверка
Сохраните media-controller state до метода и callback, который должен был его изменить. Важны переходы created/started/stopped/hold, а не только наличие session. Если controller ещё завершает предыдущую команду, дождитесь конечного state вместо немедленного повторного Start/Stop.
Сопоставьте negotiated SDP с фактическими terminal/device/stream объектами и текущим hold/start state; signaling success сам по себе не гарантирует готовность media path.
Сравните negotiated SDP с фактически созданными terminal/device/stream объектами. Отдельно проверьте hold/start state: успешное signaling-согласование ещё не доказывает, что local media path может быть запущен.
Практический сценарий из EN-описания: Code calls start again while the controller is still stopping a previous stream.
. В воспроизведении меняйте только параметр или state, который отличает этот сценарий от рабочего.
Восстановление
Пересоздавайте только media object или device binding, связанный с отказом, сохраняя dialog/session state если его контракт это допускает.
После изменения повторите тот же вызов и сравните первый HRESULT, достигнутую фазу и побочные эффекты. Исправление подтверждено только если прежнее условие «media controller находится в состоянии, несовместимом с запрошенным переходом» больше не возникает на сопоставимом входе.
Технические ссылки
- About the RTC Client API.
- Creating an RTC session.
- Microsoft RTC return constants.
- SDP offer/answer.
Нужно найти другой код? Найти другой код состояния или ошибки.