JXDramaContent.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. //
  2. // JXDramaContent.h
  3. // AICity
  4. //
  5. // Created by TogetherWatch on 2025-10-20.
  6. // Feature: 010-ui-ios - iOS平台完整功能实现(对标Android)
  7. // Phase: 1 - 数据模型层
  8. //
  9. // 对应Android: ShortVideo.kt
  10. //
  11. #import <Foundation/Foundation.h>
  12. NS_ASSUME_NONNULL_BEGIN
  13. /**
  14. * 短剧内容数据模型(支持URL和FileID两种播放方式)
  15. *
  16. * URL播放方式(传统):
  17. * @param videoUrl 视频播放地址
  18. * @param drmToken DRM Token(腾讯云播放器需要,用于解密加密视频)
  19. *
  20. * FileID播放方式(DRM推荐):
  21. * @param appId 腾讯云 AppID
  22. * @param fileId 腾讯云 FileID
  23. * @param psign 播放签名(JWT格式,包含DRM信息)
  24. * @param episodeId 剧集ID
  25. */
  26. @interface JXDramaContent : NSObject
  27. #pragma mark - URL播放方式
  28. @property (nonatomic, copy, nullable) NSString *videoUrl;
  29. @property (nonatomic, copy, nullable) NSString *drmToken;
  30. #pragma mark - FileID播放方式(DRM推荐)
  31. @property (nonatomic, copy, nullable) NSString *appId;
  32. @property (nonatomic, copy, nullable) NSString *fileId;
  33. @property (nonatomic, copy, nullable) NSString *psign;
  34. @property (nonatomic, copy, nullable) NSString *episodeId;
  35. #pragma mark - 短剧标识
  36. @property (nonatomic, assign) long long dramaId;
  37. #pragma mark - 用户交互数据
  38. @property (nonatomic, assign) long long likeCount;
  39. @property (nonatomic, assign) BOOL isLiked;
  40. @property (nonatomic, assign) long long favoriteCount;
  41. @property (nonatomic, assign) BOOL isFavorited;
  42. @property (nonatomic, assign) long long commentCount;
  43. #pragma mark - 播放信息(UI展示)
  44. @property (nonatomic, copy, nullable) NSString *title; // 剧集标题
  45. @property (nonatomic, copy, nullable) NSString *coverUrl; // 封面图URL
  46. @property (nonatomic, copy, nullable) NSString *description; // 描述
  47. @property (nonatomic, copy, nullable) NSString *descriptions; // 描述
  48. #pragma mark - 初始化方法
  49. - (instancetype)initWithDictionary:(NSDictionary *)dict;
  50. + (instancetype)dramaContentWithDictionary:(NSDictionary *)dict;
  51. - (NSDictionary *)toDictionary;
  52. #pragma mark - 辅助方法
  53. /**
  54. * 是否使用 FileID 播放模式
  55. */
  56. - (BOOL)isFileIdMode;
  57. /**
  58. * 是否使用 URL 播放模式
  59. */
  60. - (BOOL)isUrlMode;
  61. @end
  62. NS_ASSUME_NONNULL_END