更新时间 : 2021-11-19 13:35:13
//
// SXResource.h
// SXVideoEnging
//
// Created by Yin Xie on 2021/4/13.
// Copyright © 2021 Zhiqiang Li. All rights reserved.
//
import <Foundation/Foundation.h>
import "SXEditPublic.h"
NS_ASSUME_NONNULL_BEGIN
pragma mark - SXResourceDelegate
@class SXResource;
@protocol SXResourceDelegate <NSObject>
/**
* 设置资源
* @param resource 资源对象
* @return 设置成功返回true,否则返回false
*/
- (BOOL)setResource:(SXResource *)resource;
/**
* 获取资源
* @return 获取当前的资源
*/
- (SXResource *)getResource;
@end
typedef enum : NSUInteger {
SXResourceTypeUnknown,
SXResourceTypeTexture,
SXResourceTypeComposite,
SXResourceTypeAudioFile, // 音频文件或有音轨的视频文件
SXResourceTypeMediaFile, // 媒体文件包(图片或视频)
SXResourceTypeSticker, // 贴纸包
SXResourceTypeTextStyle, // 文字样式(与SXEffect类型对应)
SXResourceTypeTextBubble, // 文字气泡(与SXEffect类型对应)
SXResourceTypeTextAnimation, // 文字动画(与SXEffect类型对应)
SXResourceTypeFilter, // 滤镜(与SXEffect类型对应)
SXResourceTypeTransition, // 转场(与SXEffect类型对应)
SXResourceTypeAnimation, // 视频动画(与SXEffect类型对应)
SXResourceTypeVideoEffect, // 视频特效(与SXEffect类型对应)
SXResourceTypeTrackAnimation // 轨道动画(与SXEffect类型对应)
}SXResourceType;
typedef enum : NSUInteger {
SXFileTypeUnknownFile,
SXFileTypePackage,
SXFileTypeAudio,
SXFileTypeVideo,
SXFileTypeImage,
SXFileTypeGif,
SXFileTypeVideoSequence
}SXFileType;
@class SXComposite;
@interface SXResource : NSObject <SXEditAttributeDelegate>
/**
* 初始化资源
* @param type 资源类型
* @param path 资源路径
*/
- (instancetype)initWithType:(SXResourceType)type path:(NSString *)path;
/**
* 初始化资源
* @param composite 合成对象
*/
- (instancetype)initWithComposite:(SXComposite *)composite;
/**
* 资源绝对路径,kPackage类型资源为资源包主文件夹路径
* @return 绝对路径
*/
- (NSString *)resourcePath;
/**
* 获取资源类型,不同资源有不同的属性
* @return 资源类型
*/
- (SXResourceType)resourceType;
/**
* 资源是否有效
* @return 资源无效返回false
*/
- (BOOL)isValid;
/**
* 获取宽度
* @return 宽度
*/
- (int)width;
/**
* 获取高度
* @return 高度
*/
- (int)height;
/**
* 获取时长
* @return 单位为秒
*/
- (double)duration;
/**
* 获取文件类型
* @return 文件类型
*/
- (SXFileType)fileType;
/**
* 资源包的id,资源包带有唯一id,仅kPackage类型资源有效
* @return 资源id
*/
- (NSString *)packageUUid;
/**
* 资源描述,kPackage类型的文件一般会带有描述信息
* @return 描述信息
*/
- (NSString *)description;
//音频相关
/**
* 获取音频采样率
* @return 采样率,单位Hz
*/
- (double)sampleRate;
/**
* 获取音频声道数
* @return 声道数
*/
- (unsigned int)channels;
//合成相关
- (NSString *)compositeId;
@end
NS_ASSUME_NONNULL_END
//
// SXResource.h
// SXVideoEnging
//
// Created by Yin Xie on 2021/4/13.
// Copyright © 2021 Zhiqiang Li. All rights reserved.
//
import <Foundation/Foundation.h>
import "SXEditPublic.h"
NS_ASSUME_NONNULL_BEGIN
pragma mark - SXResourceDelegate
@class SXResource;
@protocol SXResourceDelegate <NSObject>
/**
* 设置资源
* @param resource 资源对象
* @return 设置成功返回true,否则返回false
*/
- (BOOL)setResource:(SXResource *)resource;
/**
* 获取资源
* @return 获取当前的资源
*/
- (SXResource *)getResource;
@end
typedef enum : NSUInteger {
SXResourceTypeUnknown,
SXResourceTypeTexture,
SXResourceTypeComposite,
SXResourceTypeAudioFile, // 音频文件或有音轨的视频文件
SXResourceTypeMediaFile, // 媒体文件包(图片或视频)
SXResourceTypeSticker, // 贴纸包
SXResourceTypeTextStyle, // 文字样式(与SXEffect类型对应)
SXResourceTypeTextBubble, // 文字气泡(与SXEffect类型对应)
SXResourceTypeTextAnimation, // 文字动画(与SXEffect类型对应)
SXResourceTypeFilter, // 滤镜(与SXEffect类型对应)
SXResourceTypeTransition, // 转场(与SXEffect类型对应)
SXResourceTypeAnimation, // 视频动画(与SXEffect类型对应)
SXResourceTypeVideoEffect, // 视频特效(与SXEffect类型对应)
SXResourceTypeTrackAnimation // 轨道动画(与SXEffect类型对应)
}SXResourceType;
typedef enum : NSUInteger {
SXFileTypeUnknownFile,
SXFileTypePackage,
SXFileTypeAudio,
SXFileTypeVideo,
SXFileTypeImage,
SXFileTypeGif,
SXFileTypeVideoSequence
}SXFileType;
@class SXComposite;
@interface SXResource : NSObject <SXEditAttributeDelegate>
/**
* 初始化资源
* @param type 资源类型
* @param path 资源路径
*/
- (instancetype)initWithType:(SXResourceType)type path:(NSString *)path;
/**
* 初始化资源
* @param composite 合成对象
*/
- (instancetype)initWithComposite:(SXComposite *)composite;
/**
* 资源绝对路径,kPackage类型资源为资源包主文件夹路径
* @return 绝对路径
*/
- (NSString *)resourcePath;
/**
* 获取资源类型,不同资源有不同的属性
* @return 资源类型
*/
- (SXResourceType)resourceType;
/**
* 资源是否有效
* @return 资源无效返回false
*/
- (BOOL)isValid;
/**
* 获取宽度
* @return 宽度
*/
- (int)width;
/**
* 获取高度
* @return 高度
*/
- (int)height;
/**
* 获取时长
* @return 单位为秒
*/
- (double)duration;
/**
* 获取文件类型
* @return 文件类型
*/
- (SXFileType)fileType;
/**
* 资源包的id,资源包带有唯一id,仅kPackage类型资源有效
* @return 资源id
*/
- (NSString *)packageUUid;
/**
* 资源描述,kPackage类型的文件一般会带有描述信息
* @return 描述信息
*/
- (NSString *)description;
//音频相关
/**
* 获取音频采样率
* @return 采样率,单位Hz
*/
- (double)sampleRate;
/**
* 获取音频声道数
* @return 声道数
*/
- (unsigned int)channels;
//合成相关
- (NSString *)compositeId;
@end
NS_ASSUME_NONNULL_END