| Предыдущий | Следующий |
| MF_E_MP3_NOTSUPPORTED | MF_E_INVALID_FORMAT |
MF_E_NO_DURATION
Что означает MF_E_NO_DURATION
MF_E_NO_DURATION (0xC00D3E8A) — Для медиапотока не задана длительность.
В подсистеме «COM/WinRT» результат 0xC00D3E8A относится к области «контракт вызываемого interface, аргументы и state объекта». Описание «для медиапотока не задана длительность» сужает проверку до темы «mf, отсутствие, duration».
Что проверить и как подтвердить исправление
Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0xC00D3E8A и условии «для медиапотока не задана длительность» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Чтобы локализовать 0xC00D3E8A, соберите IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IMFByteStream::GetLength. Затем для 0xC00D3E8A сравните исправный и неуспешный запуск в части «mf, отсутствие, duration», меняя одно условие за раз.
Коррекция для 0xC00D3E8A должна быть предметной: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Для 0xC00D3E8A и сообщения «для медиапотока не задана длительность» общий сброс допустим лишь как контроль, но не как доказательство причины.
После исправления повторите тот же вызов на прежних данных; у результата 0xC00D3E8A должен измениться первый неуспешный этап, а не только последующее сообщение.
Документация для результата 0xC00D3E8A: MP3 File Source · IMFByteStream::GetLength · FFmpeg: MP3 duration and seek implementation.
Нужно найти другой код? Найти другой код состояния или ошибки.
