Соотношение сторон сохраненного видео отличается от виджета предварительного просмотра.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Соотношение сторон сохраненного видео отличается от виджета предварительного просмотра.

Сообщение Anonymous »

Почему записанное видео обрезается по бокам, хотя мой CameraPreview показывает полный кадр?
Я работаю над приложением для Android во Flutter, используя пакет камеры ( 0.11.0+2). Я настроил CameraPreview с соотношением сторон 0,75 (3:4), и он отлично отображает полный кадр. Однако когда я записываю видео, сохраненный файл обрезается по бокам. Я не уверен, что вызывает такую ​​разницу между предварительным просмотром и окончательной записью.
Я использую поток от контроллера для определения позы, и это работает отлично. Но если я записываю одновременно, видео в сохраненном файле обрезается или имеет другое соотношение сторон.
Вот соответствующий код, показывающий, что я делаю. У меня очень большой файл, поэтому я решил показать только те части, которые, по моему мнению, необходимы, но дайте мне знать, если вы хотите, чтобы я показал больше моего кода:
// Camera preview with aspect ratio setting
Align(
alignment: Alignment.center,
child: AspectRatio(
aspectRatio: _aspectRatio, // 0.75 for 3:4 preview aspect ratio
child: CameraPreview(
_cameraController!,
child: _customPaint,
),
),
),

// Initialize camera controller
final CameraController cameraController = CameraController(
cameraDescription,
ResolutionPreset.low, // Tried different resolutions here
imageFormatGroup: ImageFormatGroup.nv21,
enableAudio: false,
fps: 25,
);

// Recording functions
Future _startVideoRecording() async {
if (_cameraController == null || _cameraController!.value.isRecordingVideo) return;

try {
await _cameraController!.startVideoRecording();
setState(() => _isRecording = true);
} on CameraException catch (e) {
print('Error starting video recording: $e');
}
}

Future _stopVideoRecording() async {
if (_cameraController == null || !(_cameraController!.value.isRecordingVideo)) return null;

try {
XFile? videoFile = await _cameraController!.stopVideoRecording();
setState(() => _isRecording = false);
return videoFile;
} on CameraException catch (e) {
print('Error stopping video recording: $e');
return null;
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... iew-widget
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»