// // JXDramaContent.h // AICity // // Created by TogetherWatch on 2025-10-20. // Feature: 010-ui-ios - iOS平台完整功能实现(对标Android) // Phase: 1 - 数据模型层 // // 对应Android: ShortVideo.kt // #import NS_ASSUME_NONNULL_BEGIN /** * 短剧内容数据模型(支持URL和FileID两种播放方式) * * URL播放方式(传统): * @param videoUrl 视频播放地址 * @param drmToken DRM Token(腾讯云播放器需要,用于解密加密视频) * * FileID播放方式(DRM推荐): * @param appId 腾讯云 AppID * @param fileId 腾讯云 FileID * @param psign 播放签名(JWT格式,包含DRM信息) * @param episodeId 剧集ID */ @interface JXDramaContent : NSObject #pragma mark - URL播放方式 @property (nonatomic, copy, nullable) NSString *videoUrl; @property (nonatomic, copy, nullable) NSString *drmToken; #pragma mark - FileID播放方式(DRM推荐) @property (nonatomic, copy, nullable) NSString *appId; @property (nonatomic, copy, nullable) NSString *fileId; @property (nonatomic, copy, nullable) NSString *psign; @property (nonatomic, copy, nullable) NSString *episodeId; #pragma mark - 短剧标识 @property (nonatomic, assign) long long dramaId; #pragma mark - 用户交互数据 @property (nonatomic, assign) long long likeCount; @property (nonatomic, assign) BOOL isLiked; @property (nonatomic, assign) long long favoriteCount; @property (nonatomic, assign) BOOL isFavorited; @property (nonatomic, assign) long long commentCount; #pragma mark - 播放信息(UI展示) @property (nonatomic, copy, nullable) NSString *title; // 剧集标题 @property (nonatomic, copy, nullable) NSString *coverUrl; // 封面图URL @property (nonatomic, copy, nullable) NSString *description; // 描述 @property (nonatomic, copy, nullable) NSString *descriptions; // 描述 #pragma mark - 初始化方法 - (instancetype)initWithDictionary:(NSDictionary *)dict; + (instancetype)dramaContentWithDictionary:(NSDictionary *)dict; - (NSDictionary *)toDictionary; #pragma mark - 辅助方法 /** * 是否使用 FileID 播放模式 */ - (BOOL)isFileIdMode; /** * 是否使用 URL 播放模式 */ - (BOOL)isUrlMode; @end NS_ASSUME_NONNULL_END