lincf0912 / LFImagePickerController

一个支持多选图片和视频的图片选择器,同时有预览、编辑功能
MIT License
227 stars 46 forks source link

不走代理 #53

Closed wkff closed 5 years ago

wkff commented 6 years ago

如果设置只选视频,则不走回调。 allowPickingVideo = YES; allowPickingImage = NO;

lincf0912 commented 6 years ago

你应该是实现了didFinishPickingResultHandle。代理与block只能2选1

wkff commented 6 years ago

只实现了一个

你那里可以吗,后来我手工加了一个回调,可以了。

我的需求是只能选一个视频,难道我用法不对?

LFImagePickerController *videoPicker = [[LFImagePickerController alloc]initWithMaxImagesCount:0 delegate:self]; videoPicker.allowTakePicture = NO; videoPicker.allowPickingVideo = YES; videoPicker.allowPickingImage = NO; videoPicker.allowPickingGif = NO; videoPicker.maxVideosCount = 1; videoPicker.naviBgColor = [UIColor whiteColor]; videoPicker.naviTitleColor = [UIColor colorOfBlack33]; videoPicker.barItemTextColor = [UIColor colorOfBlack33]; videoPicker.allowPickingOriginalPhoto = NO; videoPicker.maxVideoDuration = 300;

lincf0912 commented 6 years ago

@wkff 版本1.5.5,我按照你的初始化是可以在lf_imagePickerController: didFinishPickingResult:回调的。

LFImagePickerController *videoPicker = [[LFImagePickerController alloc]initWithMaxImagesCount:1 delegate:self]; videoPicker.allowTakePicture = NO; videoPicker.allowPickingVideo = YES; videoPicker.allowPickingImage = NO; videoPicker.allowPickingGif = NO; videoPicker.naviBgColor = [UIColor whiteColor]; videoPicker.naviTitleColor = [UIColor colorOfBlack33]; videoPicker.barItemTextColor = [UIColor colorOfBlack33]; videoPicker.allowPickingOriginalPhoto = NO; videoPicker.maxVideoDuration = 300;

这样用户体验可能会好点的(个人见解)。

你在哪里添加回调就可以了?

wkff commented 6 years ago

PhotoPicker有下面一个代码,测试发现选完视频会走else,但走不到 ^(LFResultVideo *resultVideo) {photosComplete(resultVideo, i);}];

if (videoEdit) { [[LFVideoEditManager manager] getVideoWithAsset:model presetName:imagePickerVc.videoCompressPresetName completion:^(LFResultVideo *resultVideo) { if (imagePickerVc.autoSavePhotoAlbum) { /* 编辑视频保存到相册 / [[LFAssetManager manager] saveVideoToCustomPhotosAlbumWithTitle:nil videoURLs:@[resultVideo.url] complete:nil]; } photosComplete(resultVideo, i); }]; } else {

endif

                        [[LFAssetManager manager] getVideoResultWithAsset:model.asset presetName:imagePickerVc.videoCompressPresetName completion:^(LFResultVideo *resultVideo) {

                            photosComplete(resultVideo, i);

                        }];

ifdef LF_MEDIAEDIT

                    }
lincf0912 commented 6 years ago

首先你确定你的版本为1.5.5 全面视频都没有回调吗?你尝试用手机拍一个视频看看。

wkff commented 6 years ago

@lincf0912 是最新的

wkff commented 6 years ago

@lincf0912 刚又测了一上,相机录制的视频还真就可以,你可以到抖音分享、或朋友圈保存。这些视频都不走回调的。

lincf0912 commented 6 years ago

好的。我知道了。先mark。

wkff commented 6 years ago

@lincf0912 不用弄了,我的LFAssetManager不是最新的,替换了一下,回调好了。

lincf0912 commented 6 years ago

OK.

wkff commented 6 years ago

@lincf0912 回调完你已经压缩过了,我怎么从LFResultVideo里拿到压缩过的视频。

lincf0912 commented 6 years ago

/** 视频数据 */ @property (nonatomic, readonly) NSData *data; /** 视频地址 */ @property (nonatomic, readonly) NSURL *url; 压缩质量取决于LFImagePickerController @property (nonatomic,copy) NSString *videoCompressPresetName;

wkff commented 6 years ago

好,这样方便多了。我以为这俩是原数据。