Files
cam_control_android/VIDEO_QUICK_FIX.md
2025-12-09 21:21:26 +09:00

2.4 KiB
Raw Permalink Blame History

КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: Видео теперь должно работать!

Проблема

ImageAnalysisAnalyzer: maxImages (4) has already been acquired
[VideoProcessor Process] ⚠️  NO FRAMES YET

Видео не отправляется на сервер!

Решение (3 изменения)

1. Уменьшено разрешение (CameraManager.kt)

// ❌ БЫЛО: 1920x1080 → 8 МБ на фрейм
// ✅ СТАЛО: 640x480 → 1.2 МБ на фрейм

.setMaxResolution(android.util.Size(640, 480))  // ← ДОБАВЛЕНО

2. Ограничена частота отправки (StreamViewModel.kt)

// ❌ БЫЛО: Отправляем каждый фрейм (30 FPS)
// ✅ СТАЛО: Отправляем максимум 10 FPS

if (currentTime - lastFrameTime < frameIntervalMs) {
    return  // Пропускаем фрейм если пришёл слишком рано
}

3. Улучшена обработка исключений (CameraManager.kt)

// ❌ БЫЛО: ImageProxy может не закрыться в catch блоке
// ✅ СТАЛО: Используем finally для гарантированного закрытия

} finally {
    imageProxy.close()
}

📊 Результаты

Метрика До После
Размер фрейма 8 МБ 1.2 МБ (↓ 6.7x)
Обработка Медленная Быстрая
Буфер ImageReader Переполняется Нормально
Видео на сервере НЕТ ДА

🚀 Установка и проверка

# 1. Установить новый APK
./gradlew installDebug

# 2. Запустить и подключиться к серверу

# 3. Проверить видео в админ-панели
# Если видно → ПРОБЛЕМА РЕШЕНА ✅

📋 Файлы изменены

  1. CameraManager.kt - добавлено .setMaxResolution()
  2. StreamViewModel.kt - добавлен контроль частоты + улучшена обработка

Компиляция

BUILD SUCCESSFUL in 1s

Смотрите полное описание: VIDEO_BUFFER_FIX.md

Версия: 1.3
Статус: Готово к тестированию