Проблема с записью и сохранением видео с помощью CAMERA MAUI ⇐ Android
-
Гость
Проблема с записью и сохранением видео с помощью CAMERA MAUI
Я создал метод, который позволяет записывать видео и сохранять их с помощью соответствующей функции. Проблема в том, что он не сохраняет видео. Я пробовал разные методы, в том числе метод CAMERA MAUI, но ни один из них не работает.
Я попробовал сначала создать файл mp4, как в этом методе, и не создавать его (как это делается в руководстве):
частный async void TakeVideo(отправитель объекта, аргументы EventArgs) { пытаться { если (!isRecording) { isRecording = правда; foreach (файл FileInfo в cacheDirectory.GetFiles()) { файл.Удалить(); } если (cacheDirectory.Exists) { cameraView.Camera = cameraView.Cameras[selectedCamera]; строка fileVideoPath = Path.Combine(cacheDirectory.FullName, "Video.mp4"); Файл.Создать(fileVideoPath).Закрыть(); var result = await cameraView.StartRecordingAsync(fileVideoPath, new Size(1920, 1080)); //не работа IconVideo.TintColor = Оранжевый; } } еще { isRecording = ложь; результат вар = ждут cameraView.StopRecordingAsync(); IconVideo.TintColor = Красный; string namefile = await Shell.Current.DisplayPromptAsync("Rinomina Video", "Inserisci name video: ", "CONFERMA", "ANNULLA"); если (!string.IsNullOrEmpty(namefile)) { файл имени += ".mp4"; строка localFilePath = Path.Combine(dcmiDirectory.FullName, namefile); вар fileTrovato = cacheDirectory.GetFiles().FirstOrDefault(); File.Copy(fileTrovato.FullName, localFilePath, true); VideoSource = localFilePath; } cameraView.Camera = cameraView.Cameras[selectedCamera]; MainThread.BeginInvokeOnMainThread(async () => { дождитесь cameraView.StopCameraAsync(); ждут cameraView.StartCameraAsync(новый размер(1920, 1080)); }); } } поймать (исключение ex) { await Shell.Current.DisplayAlert("ОШИБКА", ex.Message, "ОК"); } } Я создаю такие каталоги, и это работает:
private async void CreateCacheDir() { пытаться { строка dcmiDir = Path.Combine(FileSystem.CacheDirectory, "DimasiDCIMCache"); dcmiDirectory = Directory.CreateDirectory(dcmiDir); строка CacheDir = Path.Combine(dcmiDir, "Кэш"); cacheDirectory = Directory.CreateDirectory(cacheDir); } поймать (Исключение ex) { await Shell.Current.DisplayAlert("ОШИБКА", ex.Message, "ОК"); } }
Я создал метод, который позволяет записывать видео и сохранять их с помощью соответствующей функции. Проблема в том, что он не сохраняет видео. Я пробовал разные методы, в том числе метод CAMERA MAUI, но ни один из них не работает.
Я попробовал сначала создать файл mp4, как в этом методе, и не создавать его (как это делается в руководстве):
частный async void TakeVideo(отправитель объекта, аргументы EventArgs) { пытаться { если (!isRecording) { isRecording = правда; foreach (файл FileInfo в cacheDirectory.GetFiles()) { файл.Удалить(); } если (cacheDirectory.Exists) { cameraView.Camera = cameraView.Cameras[selectedCamera]; строка fileVideoPath = Path.Combine(cacheDirectory.FullName, "Video.mp4"); Файл.Создать(fileVideoPath).Закрыть(); var result = await cameraView.StartRecordingAsync(fileVideoPath, new Size(1920, 1080)); //не работа IconVideo.TintColor = Оранжевый; } } еще { isRecording = ложь; результат вар = ждут cameraView.StopRecordingAsync(); IconVideo.TintColor = Красный; string namefile = await Shell.Current.DisplayPromptAsync("Rinomina Video", "Inserisci name video: ", "CONFERMA", "ANNULLA"); если (!string.IsNullOrEmpty(namefile)) { файл имени += ".mp4"; строка localFilePath = Path.Combine(dcmiDirectory.FullName, namefile); вар fileTrovato = cacheDirectory.GetFiles().FirstOrDefault(); File.Copy(fileTrovato.FullName, localFilePath, true); VideoSource = localFilePath; } cameraView.Camera = cameraView.Cameras[selectedCamera]; MainThread.BeginInvokeOnMainThread(async () => { дождитесь cameraView.StopCameraAsync(); ждут cameraView.StartCameraAsync(новый размер(1920, 1080)); }); } } поймать (исключение ex) { await Shell.Current.DisplayAlert("ОШИБКА", ex.Message, "ОК"); } } Я создаю такие каталоги, и это работает:
private async void CreateCacheDir() { пытаться { строка dcmiDir = Path.Combine(FileSystem.CacheDirectory, "DimasiDCIMCache"); dcmiDirectory = Directory.CreateDirectory(dcmiDir); строка CacheDir = Path.Combine(dcmiDir, "Кэш"); cacheDirectory = Directory.CreateDirectory(cacheDir); } поймать (Исключение ex) { await Shell.Current.DisplayAlert("ОШИБКА", ex.Message, "ОК"); } }
Мобильная версия