Giter Club home page Giter Club logo

hxphpicker's Issues

demo 运行报错

demo 运行报错;

let networkImageAsset = PhotoAsset.init(networkImageAsset: NetworkImageAsset.init(thumbnailURL: networkImageURL, originalURL: networkImageURL))

错误信息:Cannot find 'NetworkImageAsset' in scope

新建工程
pod 'HXPHPicker'
pod 'Kingfisher'
安装后

相同的报错原因;

分析: #if canImport(Kingfisher) 不能识别到Kingfisher 导致

作者能查看修复么?
谢谢!

可以只显示gif吗?

设置config.selectOptions = [.gifPhoto],还是会显示静态图片。
设置config.selectOptions = [.video],只显示video。

选取或者拍摄视频,使用这个方法获取视频时,如何获取处理视频的进度

/// 获取视频地址
/// - Parameters:
/// - exportPreset: 视频分辨率,默认ratio_640x480,传 nil 获取则是原始视频
/// - videoQuality: 视频质量[0-10],默认4,exportPreset不为nil时有效
/// - exportSession: 导出视频时对应的 AVAssetExportSession,exportPreset不为nil时触发
/// - videoURLHandler: 每一次获取视频地址都会触发
/// - completionHandler: 全部获取完成(失败的不会添加)
func getVideoURL(
exportPreset: ExportPreset? = .ratio_640x480,
videoQuality: Int = 4,
exportSession: AVAssetExportSessionHandler? = nil,
videoURLHandler: URLHandler? = nil,
completionHandler: @escaping ([URL]) -> Void
) {
photoAssets.getVideoURL(
exportPreset: exportPreset,
videoQuality: videoQuality,
exportSession: exportSession,
videoURLHandler: videoURLHandler,
completionHandler: completionHandler
)
}

2:PickerConfiguration 和 PhotoEditorConfiguration能不能像CameraConfiguration 那样加上modalPresentationStyle的属性

照片和视频编辑滤镜问题

关于滤镜

咱们目前的滤镜是硬编码到代码中的,请问如何实现自定义滤镜样式,或者后期是否考虑增加动态设置滤镜参数的场景?

关于音频

添加背景音乐不支持选择背景音乐的指定一段时长,后期建议添加。

Demo无法运行

运行报错:Command CompileSwiftSources failed with a nonzero exit code;对比了很多解决方法,仍存在问题;

private(set)修饰的一些讨论

作者您好 , 最近在通过您的这个开源项目学习 swift 语法也学习到了你代码中很好的 面向接口而非面向实现编程 的代码写法思路 , 有一个点想和您探讨 :
ConfigurationViewCell 这个文件中, 对控件的懒加载前面你用了 private(set)修饰, 但是其实我发现即便这样 ,我在外部还是可以通过比如 cell.titleLabel.XXX 拿到 titleLabel 内部的属性 , 还是能修改一些相关信息, 这里是不是直接用 private修饰更好 , 感觉这个 private(set)完全没起到作用, 它只是让 titleLabel 没办法再被定义被初始化 , 但是他里面的属性我还是拿得到能修改 , 这样对封装性是不是有一些破坏;
如果您看到信息, 烦请您方便的时候回复一下 , 谢谢!

发现一个点选的显示逻辑问题 , 作者看看是否需要修复~

当我选择了一张照片 , 并且选中了原图按钮后 , 后面会显示该图片按钮的大小 , 点击完成这张图片就进入到了九宫格里 , 此时我再点击右上角的设置让系统不允许选择照片 , 点击允许加载系统照片库为 不允许 , 此时我再点击 ➕ 按钮选择照片的时候之前那张照片的原图(2.8M)还会存在, 但是其实此时照片库已经没有可选的照片了 , 希望作者看一下这个问题 ;

点击路径为:
Picker -> 打开选择器(右上角) -> 选一张且选中原图 -> 点击完成 -> 点击设置(右上角) -> 点击允许加载系统照片库将值置为不允许 -> 点击确定 -> 点击九宫格➕选择照片, 发现底部的原图(2.8M)还在 ~

视频时长

config.maximumSelectedVideoDuration = 15
config.minimumSelectedVideoDuration = 5
我这样限制时间,然后可剪辑时长却只有10s
有人遇到同样的问题吗?

不走代理方法

就是当单纯选择视频的时候 并且是单选(多选我没试)
此时底部会显示 编辑、原图、完成 按钮,这时候点击完成按钮不会走代理方法
必须是点击编辑页面里面的完成按钮才会走代理方法

PhotoBrowser浏览视频

PhotoBrowser浏览视频的时候,这种写法视频大小不对,只展示中间一部分
d8c2cc3e-8889-46f6-b201-159b60b6522c

PhotoBrowser.show(
            // 预览的资源数组
            [PhotoAsset.init(networkVideoAsset: .init(videoURL: url))],
            // 当前预览的位置
            pageIndex: pageIndex,
            // 预览相关配置
            config: config,
            // 来源控制器
            fromVC: self.fromVC,
            // 转场动画初始的 UIImage
            transitionalImage: fromView?.image
        ) { index in
            fromView
        } deleteAssetHandler: { index, photoAsset, photoBrowser in
            // 点击了删除按钮
            PhotoTools.showAlert(
                viewController: photoBrowser,
                title: R.string.localizable.deleteCommon(preferredLanguages: Helper.currentLanguage()),
                leftActionTitle: R.string.localizable.confirm(preferredLanguages: Helper.currentLanguage()),
                leftHandler: { (alertAction) in
                    photoBrowser.deleteCurrentPreviewPhotoAsset()
                    self.deleteAssetHandler?(index)
                }, rightActionTitle: R.string.localizable.cancel(preferredLanguages: Helper.currentLanguage())) { (alertAction) in }
        } longPressHandler: { index, photoAsset, photoBrowser in
            self.longPressHandler?(index)
            // 长按事件
            self.previewLongPressClick(
                photoAsset: photoAsset,
                photoBrowser: photoBrowser,
                showDelete: showDelete
            )
        }

RowTypeRule.swift 文件的一些疑问

作者你好 ,我想问一下 RowTypeRule.swift 这个文件里有一个同名的接口协议 protocol RowTypeRule { ... } 和其默认实现
我想问一下 , 这个接口貌似在全局没有被用到 , 我想向你请教一下 , 这样的写法是 swift 必须得么? 还是说你也只是留一个口子在这 , 用不用无所谓 ? 希望您看到消息方便的时候回复一下 , 不胜感激!

PhotoBrowser的一点小优化

1.作为图片浏览器,当预览大图滚动时,原界面的轮播图片不会滚动到当前页码,加了一个DidScrollHandler = (Int) -> Void,把内部的页码传输出去
2.有时候浏览大图时,转场动画时不想隐藏原视图,Configuration增加了个hidenSourceView的控制参数
3.当在一个Present出来的控制器中再预览大图时,转场动画会有瑕疵,底部不会渐变,动画生硬,因为PickerTransition里contentView的frame设置的有问题,当type == .present,frame = toVC.view.bounds,type == .dismiss,frame = fromVC.view.bounds

编辑网络视频导出失败

如题 不管是用你的demo还是pod进项目的库
当编辑网络视频的时候 视频导出失败
是不支持编辑网络视频还是有bug?

在你的demo中我是直接在EditorConfigurationViewController控制器中修改你本地视频地址(videoURL)为网络视频地址

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.