JXDramaContent.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. #pragma mark - 初始化方法
  48. - (instancetype)initWithDictionary:(NSDictionary *)dict;
  49. + (instancetype)dramaContentWithDictionary:(NSDictionary *)dict;
  50. - (NSDictionary *)toDictionary;
  51. #pragma mark - 辅助方法
  52. /**
  53. * 是否使用 FileID 播放模式
  54. */
  55. - (BOOL)isFileIdMode;
  56. /**
  57. * 是否使用 URL 播放模式
  58. */
  59. - (BOOL)isUrlMode;
  60. @end
  61. NS_ASSUME_NONNULL_END