要转换CFStringRef和NSString类型,可以使用以下方法:

NSString * str = (__bridge NSString*)kUTTypeMovie;
UIImagePickerController中的更多属性和方法如下:

//设置代理
@property(nullable,nonatomic,weak) id <UINavigationControllerDelegate, UIImagePickerControllerDelegate> delegate;
//设置书体提供者类型 默认为图库
@property(nonatomic) UIImagePickerControllerSourceType sourceType;
//设置所需要的数据类型,需要设置为系统定义的文件类型字符串数组 默认为kUTTypeImage
@property(nonatomic,copy) NSArray<NSString *> *mediaTypes;
//设置是否允许编辑图片 设置为YES,则用户选择图片时可以编辑裁剪图片
@property(nonatomic) BOOL allowsEditing;
//设置媒体文件的最大时长 默认为10分钟
@property(nonatomic) NSTimeInterval videoMaximumDuration;
//设置媒体文件的质量 枚举如下:
/*
typedef NS_ENUM(NSInteger, UIImagePickerControllerQualityType) {
UIImagePickerControllerQualityTypeHigh = 0, // 高质量
UIImagePickerControllerQualityTypeMedium = 1, // 中等质量
UIImagePickerControllerQualityTypeLow = 2, // 低质量
UIImagePickerControllerQualityType640x480 NS_ENUM_AVAILABLE_IOS(4_0) = 3,
UIImagePickerControllerQualityTypeIFrame1280x720 NS_ENUM_AVAILABLE_IOS(5_0) = 4,
UIImagePickerControllerQualityTypeIFrame960x540 NS_ENUM_AVAILABLE_IOS(5_0) = 5,
} __TVOS_PROHIBITED;
*/
@property(nonatomic) UIImagePickerControllerQualityType videoQuality;
//设置是否显示相机控制界面
@property(nonatomic) BOOL showsCameraControls;
//自定义的拍照界面 其会覆盖在原拍照界面上
@property(nullable, nonatomic,strong) __kindof UIView *cameraOverlayView NS_AVAILABLE_IOS(3_1);
//设置拍照界面的transform
@property(nonatomic) CGAffineTransform cameraViewTransform ;
//拍照
- (void)takePicture NS_AVAILABLE_IOS(3_1);
//进行视频捕获
- (BOOL)startVideoCapture NS_AVAILABLE_IOS(4_0);
//停止视频捕获
- (void)stopVideoCapture NS_AVAILABLE_IOS(4_0);
//设置相机捕获模式 照片或视频
@property(nonatomic) UIImagePickerControllerCameraCaptureMode cameraCaptureMode;
//设置相机设备 前置或后置
@property(nonatomic) UIImagePickerControllerCameraDevice cameraDevice;
//设置闪光灯模式
/*
typedef NS_ENUM(NSInteger, UIImagePickerControllerCameraFlashMode) {
UIImagePickerControllerCameraFlashModeOff = -1, //关闭
UIImagePickerControllerCameraFlashModeAuto = 0, //自动
UIImagePickerControllerCameraFlashModeOn = 1 //开启
} __TVOS_PROHIBITED;
*/
@property(nonatomic) UIImagePickerControllerCameraFlashMode cameraFlashMode; //相机拍照完成或者从图库相册选择相片完成后触发的回调方法 editingInfo字典中将传入编辑信息 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary<NSString *,id> *)editingInfo NS_DEPRECATED_IOS(2_0, 3_0); //相机录像或者从图库相册选择视频完成后触发的回调方法 info字典中是具体信息 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info; //ImagePickerController取消选择是回调的方法 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
在上述方法的编辑字典和信息字典中ios调用相机和相册,已经商定了一些键值对. 开发人员可以通过相应的密钥获得所需的信息. 规则如下:
//这个键对应NSString类型的值 意义为媒体文件的格式 UIKIT_EXTERN NSString *const UIImagePickerControllerMediaType; //这个键对应UIImage类型的值 意义为获取的原始图片 UIKIT_EXTERN NSString *const UIImagePickerControllerOriginalImage; //这个件对应UIIImage类型的值 意义为获取编辑后的图片 UIKIT_EXTERN NSString *const UIImagePickerControllerEditedImage; //这个键对应一个NSValue值 可以转为CGRect类型 意义为编辑的图片范围 UIKIT_EXTERN NSString *const UIImagePickerControllerCropRect; //这个键对应媒体文件的URL UIKIT_EXTERN NSString *const UIImagePickerControllerMediaURL; //这个键对应图库中的URL UIKIT_EXTERN NSString *const UIImagePickerControllerReferenceURL; //这个键对应一个NSDictionary 里面存放媒体数据 UIKIT_EXTERN NSString *const UIImagePickerControllerMediaMetadata; //现场图片数据 相机捕捉图片时会记录声音 UIKIT_EXTERN NSString *const UIImagePickerControllerLivePhoto;
系统还提供了一种存储相机照片和视频的方法,如下所示:
//将图片数据存储到相册 void UIImageWriteToSavedPhotosAlbum(UIImage *image, __nullable id completionTarget, __nullable SEL completionSelector, void * __nullable contextInfo); //将视频保存到相册 BOOL UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(NSString *videoPath); void UISaveVideoAtPathToSavedPhotosAlbum(NSString *videoPath, __nullable id completionTarget, __nullable SEL completionSelector, void * __nullable contextInfo);
关注技术,热爱生活,交流技术并成为朋友. -珲少
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-146293-2.html
那就是统一之时
不能打无准备之仗
对于美舰来说这是在闯鬼门关
中国发展迅速都是老百姓无形中的支持