【问题标题】:Redbar Noticed when dismissing UIImagePickerController关闭 UIImagePickerController 时注意到 Redbar
【发布时间】:2014-10-30 11:06:22
【问题描述】:

我正在使用 UIImagePickerController 来录制、编辑视频并将其保存到文件中。关闭 UIImagePickerController 时,状态栏会闪烁红色并消失。我想避免这种情况。我注意到这一点从 iOS8.1、iOS8、iOS7.1 等开始逐渐减少

- (void) cameraClicked{
    self.recordState=KRERecordStateRecording;
    UIImagePickerController *pickerController = [[UIImagePickerController alloc] init];
    pickerController.delegate  = self;
    pickerController.sourceType = UIImagePickerControllerSourceTypeCamera;

    if(self.mediaType==MediaTypePhoto){
        pickerController.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];

    }else if(self.mediaType==MediaTypeVideo){
        pickerController.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];
        pickerController.allowsEditing = YES;
        pickerController.videoMaximumDuration=30.0f;
    }
    [self presentViewController:pickerController animated:YES completion:nil];
}

- (void)imagePickerController:(UIImagePickerController *)picker
        didFinishPickingImage:(UIImage *)image
                  editingInfo:(NSDictionary *)editingInfo{

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

    [picker dismissViewControllerAnimated:YES completion:nil];

    NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
    if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0)
        == kCFCompareEqualTo) {
        self.selectedMedia = [[NSArray alloc] initWithObjects:[info objectForKey:UIImagePickerControllerOriginalImage], nil];
        [self saveMedia];
    }else if(CFStringCompare ((CFStringRef) mediaType, kUTTypeMovie, 0)
             == kCFCompareEqualTo){
        videoURL= [info objectForKey:UIImagePickerControllerMediaURL];
        [self saveMedia];
    }
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
    [picker dismissViewControllerAnimated:YES completion:nil];
}

【问题讨论】:

  • 在 appdelegate 中查看窗口颜色是什么
  • 白色。这似乎是由于音频会话而发生的。当录音没有正确停止时,它曾经出现在我面前。
  • 你有解决这个问题的办法吗@EdAbe
  • 没有。只是一个解决方法:在关闭 UIImagePickerController 之前关闭 AudioSession [[AVAudioSession sharedInstance] setActive:NO er​​ror:nil] 似乎是唯一的选择
  • 我面临同样的问题。任何想法都可以这样做。

标签: ios uiimagepickercontroller


【解决方案1】:

解决方法!!

我无法找到问题的实际解决方案,但确实找到了解决方法。 关闭音频会话

[[AVAudioSession sharedInstance] setActive:NO error:nil] 

在解除 UIImagePickerController 之前似乎是唯一的选择。 这经过验证可以满足我的需求。但可能不是一个理想的解决方案

【讨论】:

    【解决方案2】:

    我也遇到了同样的问题,我发现原因是在 .plist 中“基于视图控制器的状态栏外观”的值为 NO。解决了您应该将“基于控制器的状态栏外观”值设置为 YES 的问题。祝你好运!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      相关资源
      最近更新 更多