保存视频到自定义位置
来源:互联网 发布:手机淘宝退货退款金额 编辑:程序博客网 时间:2024/05/22 16:44
@implementation
ALAssetsLibrary
(ZHExpand)
/**
* 创建本地相册
*
* @param name 相册名称
* @param enumerateGroupsFailureBlock 遍历相册分组失败回调
* @param hasGroup 本地已经存在该相册,请重新命名
* @param createSuccessedBlock 创建相册成功回调
* @param createFaieldBlock 创建相册失败回调
*/
- (
void
)zh_createAssetsGroupWithName:(NSString*)name
enumerateGroupsFailureBlock
:(
void
(^) (
NSError
*error))enumerateGroupsFailureBlock
hasTheNewGroupBlock
:(
void
(^) (
ALAssetsGroup
*group))hasGroup
createSuccessedBlock
:(
void
(^) (
ALAssetsGroup
*group))createSuccessedBlock
createFaieldBlock
:(
void
(^) (
NSError
*error))createFaieldBlock
{
__block
BOOL
hasTheNewGroup =
NO
;
[
self
enumerateGroupsWithTypes
:
ALAssetsGroupAlbum
usingBlock
:^(
ALAssetsGroup
*group,
BOOL
*stop) {
hasTheNewGroup = [name
isEqualToString
:[group
valueForProperty
:ALAssetsGroupPropertyName]];
if
(hasTheNewGroup) {
[
ZHBlock
dispatchOnMainThread
:^{
hasGroup(group);
}];
*stop =
YES
;
}
if
(!group && !hasTheNewGroup && !*stop) {
//遍历完毕,本地没有该文件夹,非手动停止的遍历
[
self
addAssetsGroupAlbumWithName
:name
resultBlock
:^(
ALAssetsGroup
*agroup) {
[
ZHBlock
dispatchOnMainThread
:^{
createSuccessedBlock(agroup);
}];
}
failureBlock
:^(
NSError
*error) {
[
ZHBlock
dispatchOnMainThread
:^{
createFaieldBlock(error);
}];
}];
}
}
failureBlock
:^(
NSError
*error) {
[
ZHBlock
dispatchOnMainThread
:^{
enumerateGroupsFailureBlock(error);
}];
}];
}
/**
* 保存视频到指定相册(直接调用可保存到指定分组)
*
* @param path 视频路径
* @param name 相册名称
* @param saveSuccessBlock 保存成功回调
* @param saveFaieldBlock 保存失败回调
*/
- (
void
)zh_saveVideoWithVideoPath:(NSString*)path
toAlbum
:(NSString*)name
saveSuccessBlock
:(
void
(^) (
ALAssetsGroup
*group,
NSURL
*assetURL,
ALAsset
*asset))saveSuccessBlock
saveFaieldBlock
:(
void
(^) (
NSError
*error))saveFaieldBlock
{
[
self
writeVideoAtPathToSavedPhotosAlbum
:[
NSURL
fileURLWithPath
:path]
completionBlock
:^(
NSURL
*assetURL,
NSError
*error) {
//先添加到公众相册
if
(error) {
[
ZHBlock
dispatchOnMainThread
:^{
saveFaieldBlock(error);
}];
return
;
}
[
self
zh_addVideoToAssetGroupWithAssetUrl
:assetURL
toAlbum
:name
addSuccessBlock
:^(
ALAssetsGroup
*targetGroup,
NSURL
*currentAssetUrl,
ALAsset
*currentAsset) {
[
ZHBlock
dispatchOnMainThread
:^{
saveSuccessBlock(targetGroup,currentAssetUrl,currentAsset);
}];
}
addFaieldBlock
:^(
NSError
*error) {
[
ZHBlock
dispatchOnMainThread
:^{
saveFaieldBlock(error);
}];
}];
}];
}
/**
* 添加相册视频到指定分组
*
* @param assetURL 视频在相册的URL
* @param name 指定分组名称
* @param addSuccessBlock 添加成功回调
* @param addFaieldBlock 添加失败回调
*/
- (
void
)zh_addVideoToAssetGroupWithAssetUrl:(NSURL*)assetURL
toAlbum
:(NSString*)name
addSuccessBlock
:(
void
(^) (
ALAssetsGroup
*targetGroup,
NSURL
*currentAssetUrl,
ALAsset
*currentAsset))addSuccessBlock
addFaieldBlock
:(
void
(^) (
NSError
*error))addFaieldBlock
{
[
self
zh_createAssetsGroupWithName
:name
enumerateGroupsFailureBlock
:^(
NSError
*error) {
if
(error) {
[
ZHBlock
dispatchOnMainThread
:^{
addFaieldBlock(error);
}];
return
;
}
}
hasTheNewGroupBlock
:^(
ALAssetsGroup
*group) {
[
self
assetForURL
:assetURL
resultBlock
:^(
ALAsset
*asset) {
//得到视频的ALAsset实例
[group
addAsset
:asset];
//添加视频到指定相册分组
[
ZHBlock
dispatchOnMainThread
:^{
addSuccessBlock(group,assetURL,asset);
}];
}
failureBlock
:^(
NSError
*error) {
if
(error) {
[
ZHBlock
dispatchOnMainThread
:^{
addFaieldBlock(error);
}];
return
;
}
}];
}
createSuccessedBlock
:^(
ALAssetsGroup
*group) {
[
self
assetForURL
:assetURL
resultBlock
:^(
ALAsset
*asset) {
[group
addAsset
:asset];
[
ZHBlock
dispatchOnMainThread
:^{
addSuccessBlock(group,assetURL,asset);
}];
}
failureBlock
:^(
NSError
*error) {
if
(error) {
[
ZHBlock
dispatchOnMainThread
:^{
addFaieldBlock(error);
}];
return
;
}
}];
}
createFaieldBlock
:^(
NSError
*error) {
if
(error) {
[
ZHBlock
dispatchOnMainThread
:^{
addFaieldBlock(error);
}];
return
;
}
}];
}
0 0
- 保存视频到自定义位置
- iOS_给保存到系统相册的视频添加位置信息
- 保存结果到指定位置
- eclipse中自定义快捷键保存位置.
- ViewDragHelper自定义view保存view的位置
- SharedPreferences自定义XML文件保存位置
- 将数据库保存到Android默认位置
- iOS 保存图片或视频到PhotoLibrary
- iOS 保存图片或视频到PhotoLibrary
- DirectShow 切割视频保存到本地
- iOS 保存图片或视频到PhotoLibrary
- iOS 保存图片或视频到PhotoLibrary
- iOS保存图片视频到photoLibrary
- android 视频录制 保存到本地
- 保存照片和视频到相册显示
- php上传图片到指定位置路径保存到数据库
- 保存图片/视频到相册 保存完成后通知事件
- iOS从相册选择视频和保存视频到相册
- 【php缓存技术】php缓存技术的多种实现方法
- libev学习(二)常见类型剖析
- window内存
- 深入研究Struts2(一)---Struts2是什么?它的工作原理是什么?
- <a>作Form表单提</a>
- 保存视频到自定义位置
- 网页到底是用新窗口打开好,还是用当前页打开比较好呢
- Qt5 for android + opencv
- 字符串反转——来自华为OJ平台测试基础篇
- 生成XML文件,通过实体生成XML文件
- 【Unity3D自学记录】Unity3D之Url地址重定向(C#)
- 数据结构笔记一:基本概念和分类
- SQL Server是如何让定时作业
- 局部线性回归(Locally Weighted Linear Regression)