Nano Hash - криптовалюты, майнинг, программирование

Сохранять записанное видео только при нажатии кнопки «Сохранить»

Я могу записывать видео и воспроизводить их в своем приложении, используя приведенные ниже коды:

- (IBAction)recordVideo:(id)sender {

 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];

    [self presentViewController:picker animated:YES completion:NULL];
 }
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    self.videoURL = info[UIImagePickerControllerMediaURL];
    [picker dismissViewControllerAnimated:YES completion:NULL];

   self.videoController = [[MPMoviePlayerController alloc] init];

  [self.videoController setContentURL:self.videoURL];
  [self.videoController.view setFrame:CGRectMake (0, 40, 320, 385)];
  [self.view addSubview:self.videoController.view];

  [self.videoController play];
}

Я также знаю, что видео можно сохранить при воспроизведении, используя:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

  NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
  if ([mediaType isEqualToString:@"public.movie"]){
    // Saving the video / // Get the new unique filename
  NSString *sourcePath = [[info  objectForKey:@"UIImagePickerControllerMediaURL"]relativePath];
    UISaveVideoAtPathToSavedPhotosAlbum(sourcePath,nil,nil,nil);
}

Но как мне сохранить видео с помощью другой кнопки (например, "Сохранить видео")?


Ответы:


1

По завершении видеозаписи или процесса выбора метод - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info метода UIImagePickerController дает вам путь к видео, который является временным путем (ваша строка sourcePath в вашей реализации). Итак, что вы делаете,

1) уберите UISaveVideoAtPathToSavedPhotosAlbum(sourcePath,nil,nil,nil);, чтобы не сохранять видео сразу после записи;

2) Скопируйте или переместите видеофайл по другому пути, например, в каталог Documents или temp в песочнице приложения, и сохраните/сохраните этот путь;

3) Когда пользователь нажмет кнопку «Сохранить», сохраните видео в Фото, используя UISaveVideoAtPathToSavedPhotosAlbum(videoPath,nil,nil,nil); (videoPath — это путь, по которому вы скопировали/переместили видеофайл).

Надеюсь это поможет!

19.05.2015
  • Спасибо за ваше объяснение sourcePath. Что я должен включить в «- (IBAction) saveVideo: (id) sender», чтобы вызвать метод? 19.05.2015
  • Вы должны включить фактический код сохранения видео в этот метод. 19.05.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..