Почему записанное видео обрезается по бокам, хотя мой 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
Соотношение сторон сохраненного видео отличается от виджета предварительного просмотра. ⇐ Android
Форум для тех, кто программирует под Android
1731356147
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;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79179014/saved-video-has-different-aspect-ratio-than-preview-widget[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия